PeriodicWorkRequest无法在每个tick上重复

5

我正在设置一个每15分钟运行一次的周期性工作请求(PeriodicWorkRequest)。但是它有时会重复10分钟,有时会达到17分钟。如何设置最大几秒钟的偏差。

 val workRequest = PeriodicWorkRequest.Builder(NotificationWork::class.java, 15, TimeUnit.MINUTES).build()
        WorkManager.getInstance().enqueue(workRequest)

13:10

13:26

13:51

14:01

我能否像闹钟一样在每个“勾”上设置后台任务,或者 Workmanager 总是这样工作?

我的代码块如上所示。


1
精确调度会浪费能源,这就是为什么Android不允许你使用它的原因。 - Marko Topolnik
那我需要使用AlarmManager来做像闹钟应用这样的准时工作吗?@MarkoTopolnik - 6155031
1
也许你可以通过这种方式成功,但不准确性是有原因的。你的应用程序可能会被标记为耗电量大的应用。 - Marko Topolnik
你的应用程序是在后台保持活动状态吗?如果是被强制关闭了呢?如果应用程序被强制关闭,对我来说根本不起作用。 - J.D.1731
1个回答

6
正如Marko所说,精确调度会消耗电池能量。出于这个原因,WorkManager API并不保证严格的时间调度。如果您需要严格的定时,请考虑使用AlarmManager API。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接