我正在开发一个应用程序,其中我必须以固定的间隔(假设在 2 分钟后(执行一些重复任务,即使在打瞌睡模式下也应该完成。我的观察如下——
- 使用警报(使用 RTC 标志(执行重复任务是不准确的。安卓系统会批量发送警报。如果我们使用RTC_WAKEUP那么它比 RTC 更好,但它在 Android Vitals 中显示唤醒计数,这并不好。
- 作业调度程序很有用,但不会在 2 分钟等较短的时间间隔内工作。我试过Firebase Jobdispatcher,但这也不是很准确,我以2分钟的触发时间开始工作,但它从10-20分钟不等。
- 使用处理程序和计时器在前台服务中重复任务。在此方案中,前台服务继续在低电耗模式下运行,但处理程序和计时器停止重复任务。我读了关于 Handlers.postDelayed(( 的文章,发现这也受到打瞌睡模式的影响。
我不想为这个重复任务获取 WAKELOCK。
有人可以建议我一些更好/干净的方式来让我们在打瞌睡模式下做短间隔重复任务吗?
供参考 -
Android:让重复的后台任务做好Android Oreo准备的最佳方法是什么?
打瞌睡模式如何影响后台/前台服务(带/不带部分/完全唤醒锁(?
不完全是直接答案,但仍然 - 我需要在我的前台服务中每分钟安排一次操作(给予或采取一秒钟(。
幸运的是,我也在这个前台服务中捕获了传感器,我做了onSensorChanged事件检查是否正确的时间已经过去了,并在需要时采取行动。