在 Doze 模式下在前台服务中重复任务

El.*_*El. 5 android alarmmanager android-jobscheduler android-doze firebase-job-dispatcher

我正在开发一个应用程序,在该应用程序中我必须以固定时间间隔(假设 2 分钟后)执行一些重复任务,即使在打盹模式下也应该完成。我的观察如下-

  1. 使用警报(使用 RTC 标志)执行重复任务不准确。安卓系统批量报警。如果我们使用 RTC_WAKEUP 那么它比 RTC 更好,但是它在 Android Vitals 中显示 WAKEUP 计数并不好。
  2. Jobschedulers 很有用,但在 2 分钟之类的较短时间间隔内不起作用。我曾尝试过 Firebase Jobdispatcher 但这也不是很准确,我以 2 分钟的触发时间开始工作,但它从 10-20 分钟不等。
  3. 使用处理程序和计时器在前台服务中重复任务。在这种情况下,前台服务继续在打盹模式下运行,但处理程序和计时器停止重复任务。我阅读了 Handlers.postDelayed() 并发现这也受打盹模式的影响。

我不想为这个重复的任务获得 WAKELOCK。

有人可以建议我一些更好/更干净的方法,我们可以通过它在打瞌睡模式下执行短间隔重复任务吗?

以供参考 -

Android:让重复的后台任务 Android Oreo 准备就绪的最佳方法是什么?

打瞌睡模式如何影响后台/前台服务,有/没有部分/完全唤醒锁?

Roy*_*yBS 0

不完全是直接答案,但仍然 - 我需要在前台服务中每分钟安排一个操作(稍等一下)。

幸运的是,我也在这个前台服务中捕获传感器,我进行了onSensorChanged事件检查是否已经过了正确的时间并在需要时采取行动。