Android计时器每秒触发一次,在屏幕关闭时工作

时间:2016-02-09 23:06:36

标签: android timer wakelock

即使屏幕关闭,我也试图实施一项每秒都有效的服务。

我尝试过使用处理程序和timertask以及部分唤醒锁定而没有运气。

据我所知,不可能以如此低的间隔使用警报管理器。

我如何实现这一目标?

更新

事实证明,我所有不同的计时器实现都有效。手机重启后,唤醒锁定表现正常。

根据isHeld()获取并正确释放唤醒锁,但它表现得好像从未获得过。它可能不是。

1 个答案:

答案 0 :(得分:0)

你需要使用CountDownTimer和唤醒锁。请参阅以下内容:

  

课程概述

     

安排倒计时,直到将来的时间,定期   沿途的间隔通知。显示30的示例   文本字段中的第二个倒计时:

 new CountDownTimer(30000, 1000) {


 public void onTick(long millisUntilFinished) {
     mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
 }

 public void onFinish() {
     mTextField.setText("done!");
 }   }.start();  
     

对onTick(long)的调用将同步到此对象,以便之前不会发生对onTick(long)的一次调用   之前的回调已完成。这只有在相关时才有意义   onTick(long)的实现需要一些时间来执行它   与倒计时间隔相比显着。

请注意获取唤醒锁很重要,否则设备可能会进入睡眠状态。有关唤醒锁的更多信息,请参阅 - http://developer.android.com/training/scheduling/wakelock.html