我正在开发一个应用程序,在该应用程序中,我必须以固定的时间间隔(比如说 2 分钟后)执行一些重复任务,即使在打瞌睡模式下也应该完成。我的观察在下面提到 -
- 使用警报(使用 RTC 标志)执行重复任务是不准确的。Android系统批量报警。如果我们使用 RTC_WAKEUP 那么它比 RTC 更好,但它在 Android Vitals 中显示 WAKEUP 计数不好。
- Jobscheduler 很有用,但不会在 2 分钟等更短的时间间隔内工作。我曾尝试过 Firebase Jobdispatcher,但这也不是很准确,我以 2 分钟的触发时间开始了 Job,但它在 10-20 分钟之间变化。
- 使用处理程序和计时器在前台服务中重复任务。在这种情况下,前台服务继续以打盹模式运行,但处理程序和计时器停止重复任务。我阅读了 Handlers.postDelayed() 并发现这也受打盹模式的影响。
我不想为这个重复任务获取 WAKELOCK。
有人可以建议我一些更好/更干净的方法,我们可以在打瞌睡模式下做短间隔重复任务吗?
以供参考 -