Android: 防止设备在按下电源按钮时锁定

Android: prevent device from locking when pressing the power button

我有一个应用程序,当设备锁定时它会启动 activity。通过这样做,设备不会锁定,但会显示 activity。还行吧。我的问题是,如果我已经在 activity 中并且当我按下电源按钮时设备会锁定。

在 BroadcastReceiver 中我可以看到屏幕已关闭:

if (action.equals(Intent.ACTION_SCREEN_OFF)) {
            isScreenOff = true;
            final Intent serviceIntent = new Intent(context, Screensaver.class);
            serviceIntent.putExtra("screen_state", isScreenOff);
            context.startService(serviceIntent);
            Log.i(TAG, "SCREEN OFF.");
        }

然后调用我服务中的onStartCommand()。我在其中启动 activity。在 activity 中,我看到调用了 onResume(),然后调用了 onPause(),仅此而已。设备已锁定,屏幕已关闭。如果我手动解锁它,activity 就在那里,但没有必要手动解锁它。你知道我该如何解决吗? (不要犹豫,问我是否需要 post 更多代码)。

编辑 Here is a video 让它更清楚。最后,我在我的屏幕保护程序 activity 中,当我按下电源按钮时,设备锁定并且不会再次启动屏幕。

我想通了!由于 activity 在我锁定设备时启动,因此在 onStop() 中调用 Activity.recreate() 解决了我的问题。