我只是想知道我是否正确地做到了;我正在编写一个通知应用程序,该应用程序可以在手机处于休眠状态时显示通知


禁用键盘锁
获取唤醒锁
显示通知
设置超时警报并重新启用键盘锁,并在用户不触摸屏幕时释放唤醒锁。
4.1用户触摸屏幕,我禁用了计时器。什么也不要做。完成并完成
4.2用户不要触摸屏幕,因此请重新启用键盘锁并释放唤醒锁。手机再次入睡


基本上我最想知道第4.1点。取消警报的挂起意图,仅执行其他操作?还是应该以某种方式处理设置的键盘锁和唤醒锁?

最佳答案

实现您自己的Keyguard替换的技巧如下:-


在onCreate方法中,您无需禁用键盘锁,但此时用户可以与屏幕进行交互,因此您需要小心意外触摸。

 getWindow().addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED |
        LayoutParams.FLAG_TURN_SCREEN_ON | LayoutParams.FLAG_KEEP_SCREEN_ON);

mKeyguardManager = (KeyguardManager)mContext.getSystemService(Context.KEYGUARD_SERVICE);
mKeyguardLock = mKeyguardManager.newKeyguardLock(TAG);

如果用户执行某些操作以表明他们希望更充分地进行交互,则可以禁用键盘锁并继续前进。

mKeyguardLock.disableKeyguard();mKeyguardManager.exitKeyguardSecurely(null);
如果他们没有这样做,那么由于未禁用键盘锁,因此您无需执行任何其他操作,只需完成活动即可


就是这样,但我仍在测试中。因此,我不是100%知道。

10-08 17:28