4

我的应用程序包含锁定屏幕,当应用程序从后台带来时会出现。

我面临一个问题,特别是从 kitkat 4.4 开始。

当应用程序进入后台时,我正在检查应用程序是否在后台运行?在 onPause() 活动方法中,通过以下代码位于前台。

private boolean isApplicationBroughtToBackground() 
{ 
    ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 
    List<RunningTaskInfo> tasks = am.getRunningTasks(1); 
    if (!tasks.isEmpty()) { 
        ComponentName topActivity = tasks.get(0).topActivity; 
        if (!topActivity.getPackageName().equals(getPackageName())) { 
            return true; 
        } 
    } 

    return false; 
}

我在 onPause() 中调用上述方法,并根据返回值决定显示锁定屏幕。

根据我的观察,此方法在 4.4 操作系统以下返回 true,但在 4.4 时返回 false。

如果我在 onStop() 方法中进行调用,我在所有情况下都是正确的。

我想知道 kitkat 在活动生命周期的背景下发生了什么变化?

需要知道它在 kitkat 中表现不同的原因吗?

4

0 回答 0