我观察到,当设备锁定时活动发生变化时,活动的底部会在解锁设备时被切断。
例如,将设备的睡眠时间设置为 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 设备这样的软菜单栏。
有人遇到过同样的问题吗?如果是,那么解决方案是什么?