我有一个应用程序,当设备锁定时,它会启动一个活动。通过这样做,设备不会锁定,但它会显示活动。还行吧。我的问题是,如果我已经在活动中,当我按下电源按钮时,设备会锁定。
在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()。在其中我开始活动。在活动中,我看到onResume()被调用,然后是onPause(),那就是它。设备已锁定且屏幕已关闭。如果我手动解锁,活动就在那里,但不需要手动解锁。你知道我怎么解决这个问题吗? (不要犹豫,问我是否需要发布更多代码)。
修改 Here is a video让它更清晰。最后,我在我的屏幕保护程序活动中,当我按下电源按钮时,设备锁定并且不再启动屏幕。
答案 0 :(得分:1)
我明白了!由于当我锁定设备时活动开始,在onStop()中调用Activity.recreate()修复了我的问题。