2014-06-15 24 views
1

我试图让我的应用程序在x时间过后(使用警报管理器)重新启用键盘保护程序。 基本上,这里是我所做的:Android - 屏幕关闭时无法重新启用键盘保护程序

比方说,我设置屏幕锁定5分钟后启用。

  1. 我的应用程序启动并禁用键盘锁 - 非常棒!
  2. 我在3分钟后创建了一个计时器(使用闹钟管理器)来锁定屏幕,并在日志中看到闹钟在3分钟后关闭,重新启用键盘锁的代码开始运行。屏幕在5分钟后熄灭,然后点击电源按钮并启用键盘锁 - 非常棒! 基本上,只要一切都在屏幕开启时完成,一切正常。

现在让我们说我们保持相同的情况下同上,但更改步骤2:

  1. 同上
  2. 我创建了一个计时器(使用警报管理器)10后锁定屏幕分钟。 5分钟后屏幕熄灭,我仍然看到日志中警告10分钟后报警正常,并重新启用键盘锁。但是,当我点击电源按钮后,我仍然可以进入应用程序而不会遇到锁定屏幕。如果我点击电源按钮或等待屏幕再次关闭,我会遇到锁定屏幕。

这似乎表明,重新启用键盘锁只会在屏幕重新启动后生效,并且在屏幕关闭时无法启用它。我错了还是有其他方法呢? 即使代码在屏幕关闭时重新启用锁定防护装置,我也希望能够将用户踢回锁定屏幕。

谢谢!

回答

0

答案是使用:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, this.getClass().getSimpleName()); 
wl.acquire(); 

之前重新启用键盘锁

+0

尼斯一个 - 这看起来像一个解决类似的问题,我有。重新启用键盘锁后,您是否释放了唤醒锁? – DaveDev

相关问题