Android中的某些应用程序似乎能够使屏幕保持超出正常超时(可能使用FLAG_KEEP_SCREEN_ON),但在退出应用程序时会锁定屏幕。我见过这个,例如在导航应用程序中,保持路线指引打开,但一旦您离开应用程序,屏幕就会锁定。
这是怎么做到的?
(请注意,当应用程序进入后台时,锁定应该发生,而不仅仅是当一个活动被同一个应用程序中的另一个活动替换时。)
答案 0 :(得分:0)
我根据" Launch activity when user taps on a notification from the lockscreen"成功解决了这个问题。这是一个例子。使用此项目https://github.com/googlesamples/android-CustomNotifications/(例如Android Studio:文件>新>导入示例;查找("自定义通知")并替换onCreate,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.sample_main);
}
并在清单中添加
<activity ...
android:showOnLockScreen="true"
...
您现在发现,如果
,活动仍然存在但是:一旦屏幕被锁定至少一次(通过超时或电源按钮),那么,当您离开应用程序时,屏幕会锁定(这会提供Lock screen programatically when exiting app的部分答案)。
但是,在屏幕至少锁定一次之前导航时,它无法正常工作。有人有建议吗?
此处的相关问题:Launch activity when user taps on a notification from the lockscreen (secure unlock)