我目前正在研究一个计时器项目。基本上,它相当简单:用户输入时间,时间用完,用户获得全屏通知(带有textview和声音的简单全屏活动)。所述通知由后台服务调用,以确保即使在用户正在做其他事情时也会调用它。
现在,一切都运行良好,直到屏幕锁定。我无法解决任何问题。
最后,我设置了以下标志(在通知活动中,正在调用):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timer);
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
...
但即便如此,键盘锁也不会禁用,通知也不会显示。只有发生的事情是屏幕开启。
我在这里错过了什么吗?
P.S。:我已经尝试过使用唤醒锁,但也没有用。
答案 0 :(得分:1)
希望你解决了你的问题,但是为了其他可能遇到你的情况,尝试在setContentView()方法之后设置标志,并使用setFlags()方法。
这就是我在我的应用程序中所做的工作。