Поскольку во многих моих действиях необходимо проверить размер экрана с помощью следующего кода:
Display display = getWindowManager().getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
Я решил переместить этот код из каждого класса активности в класс обслуживания, чтобы можно было определить кодв одном месте и вызывается каждым классом активности.
Итак, я сделал свой класс обслуживания, как показано ниже:
public class MyService {
private Display display;
public int screenWidth, screenHeight;
public MyService(){
display = getWindowManager().getDefaultDisplay(); //Error here
screenWidth = display.getWidth();
screenHeight = display.getHeight();
}
public int getScreenWidth(){
return this.screenWidth;
}
}
Поскольку мой класс обслуживания не расширяется Activity
, я не могу напрямуюиспользуйте getWindowManager()
.Я хотел бы знать, как избавиться от этой проблемы, чтобы в моем классе обслуживания был экземпляр Display
, который не нужен для расширения класса Activity?
То есть я хотел бы, чтобы моя активность могла получить доступ к ширине экрана, напримерследующее:
public class MyActivity extends Activity{
MyService service;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
service= new MyService();
int sWidth = service.getScreenWidth();
}
}