3

我正在制作一个具有启动Timer. 但是我面临一个非常严重的问题。

现在假设我已经盯着10 minutes使用的计时器CountDownTimer。10 分钟后,它应该会发出哔哔声。现在假设我按下了主页按钮,从而使应用程序在后台运行。CountDownTimer属性是它会继续倒计时,因此 10 分钟后我会得到一个beep.

但是,如果屏幕时间没有结束,就会发生这种情况。如果screen time is out屏幕变为空白/黑色,则计时器仍会继续,但在完成时,应用程序中的任何内容都不会像应用程序暂停一样运行,一旦我单击移动设备上的任何按钮使移动设备处于活动状态,应用程序就会开始在后台运行再次..

我想停止这种情况,并希望即使屏幕时间也结束了应用程序也能运行。

这怎么可能。

4

1 回答 1

4

您必须获得部分唤醒锁以保持 CPU 运行,以便您的计时器继续运行。否则设备进入睡眠状态。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
 PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Countdown");
 wl.acquire();

最后,您可以发布。

 wl.release();
于 2012-09-06T04:54:20.267 回答