我观察到当设备被锁定时活动发生变化时,活动的底部会在解锁设备时被切断。
例如将设备的休眠时间设置为15秒,并编写一个代码,该代码在电话空闲时间20秒后更改活动。现在,如果我将手机闲置21秒并解锁手机,则更改的活动会被切断。我观察到软菜单显示在我的活动底部的活动上。我已经把日志分析并解析了解锁后我的窗口高度为1845,而正常情况下是1701。
我用来获取窗口大小的代码是::
int initialWidth = getWindowManager().getDefaultDisplay().getWidth();
int initialHeight = getWindowManager().getDefaultDisplay().getHeight();
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int statusBarHeight = getDefaultStatusBarHeight(displayMetrics.densityDpi);
Rect screenSize= new Rect();
screenSize.right = initialWidth;
screenSize.bottom = initialHeight - statusBarHeight; //screenSize is what we are using //to display screen.
//code we are using to get status bar heigth.
private int getDefaultStatusBarHeight(int densityDpi) {
int statusBarHeight = 0;
switch (densityDpi) {
case 120:
statusBarHeight = 19;
break;
case 160:
statusBarHeight = 25;
break;
case 240:
statusBarHeight = 38;
break;
default:
statusBarHeight = Math.round((float) densityDpi * 25 / 160);
}
return statusBarHeight;
}
我在Newcastle ANDROID 4.1.1中遇到了这个问题,它有像ICS设备这样的软菜单栏。
有人遇到同样的问题吗?如果是,那么解决方案是什么?