2

我观察到,当设备锁定时活动发生变化时,活动的底部会在解锁设备时被切断。

例如,将设备的睡眠时间设置为 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 设备这样的软菜单栏。

有人遇到过同样的问题吗?如果是,那么解决方案是什么?

4

0 回答 0