Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓定时器,每秒启动一次,在屏幕关闭时工作_Android_Timer_Wakelock - Fatal编程技术网

Android 安卓定时器,每秒启动一次,在屏幕关闭时工作

Android 安卓定时器,每秒启动一次,在屏幕关闭时工作,android,timer,wakelock,Android,Timer,Wakelock,我正在尝试实现一个每秒都能做一些工作的服务,即使在屏幕关闭时也是如此 我尝试过使用处理器和timertask以及部分唤醒锁,但没有成功 据我所知,在如此短的时间间隔内使用报警管理器是不可能的 我如何做到这一点 更新 结果证明,我所有不同的计时器实现都有效。。重新启动手机后,唤醒锁功能正常 根据isHeld()的说法,唤醒锁被正确获取和释放,但它的行为就像从未被获取一样。可能不是。您需要与wakelock一起使用。请参阅下文: 课程概述 安排倒计时,直到将来某个时间,并定期 沿途的间隔通知。显示3

我正在尝试实现一个每秒都能做一些工作的服务,即使在屏幕关闭时也是如此

我尝试过使用处理器和timertask以及部分唤醒锁,但没有成功

据我所知,在如此短的时间间隔内使用报警管理器是不可能的

我如何做到这一点

更新

结果证明,我所有不同的计时器实现都有效。。重新启动手机后,唤醒锁功能正常

根据isHeld()的说法,唤醒锁被正确获取和释放,但它的行为就像从未被获取一样。可能不是。您需要与wakelock一起使用。请参阅下文:

课程概述

安排倒计时,直到将来某个时间,并定期 沿途的间隔通知。显示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)的实现需要一定的时间来执行 与倒计时间隔相比是显著的


请注意,获取wakelock非常重要,否则设备可能会进入睡眠状态。有关wakelocks的更多信息,请参阅-

您的问题是矛盾的。如果一个设备有一个每秒钟都在工作的应用程序,它就不会“睡眠”(至少不是以一种非常节省电池的方式)。你到底想在这里完成什么?我正在创建一个计时器,使用的时间间隔从1秒到30分钟不等。反馈不仅在屏幕上给出,而且还以声音和振动的形式给出,因此当设备处于“睡眠”状态时,它也必须工作。是的,该应用程序是一个电池鲨鱼,但用户希望如此。如果你的应用程序没有在屏幕上显示任何活动,那么你可以确保你的应用程序在设备上100%处于活动状态。Android有权在任何需要资源的时候终止任何进程。您可以通过让前台的服务处于活动状态,并让该服务保持唤醒锁以防止设备睡眠,从而尽力保持运行。你也可以让服务变得“粘性”,这样如果安卓不得不终止它,它就可以重新启动。