当应用程序在后台时解锁屏幕

时间:2019-05-14 15:24:35

标签: android

我有一个可能在屏幕锁定时启动的活动。我使用此代码使其工作:

if (powerManager != null) {
            wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK
                    | PowerManager.ACQUIRE_CAUSES_WAKEUP, "App:wakeuptag");
            wakeLock.acquire(1000 * 60);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
            setShowWhenLocked(true);
            setTurnScreenOn(true);
        } else {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
        }

到目前为止,它仅在用户锁定屏幕之前应用程序处于前台时才有效。如果在锁定屏幕之前应用程序处于bacgkround状态,则此代码将不起作用。

编辑:我发现不是因为应用程序处于后台,而是因为通过按HOME按钮关闭了该应用程序,如果我使用后退按钮关闭应用程序,则一切正常。因此,这在某种程度上与HOME按钮相关。

0 个答案:

没有答案