Because many of my Activities need to check the screen size with the following code:
Display display = getWindowManager().getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
I decide to move this code from each activity class to a service class, so that the code can be defined in one place and invoked by every activity class.
So, I made my service class like below:
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;
}
}
Because my service class does not extends Activity
, I can not directly use getWindowManager()
. I would like to know how to get rid of this problem to have the Display
instance in my service class which is not necessary to extends Activity class?
That's I would like my activity can access the screen width like following:
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();
}
}