WorkManager在Android中不定期工作



我正在创建一个android通知应用程序,它在闹钟设置后每15分钟发出通知。

它第一次调用,并显示通知,但工作管理器每隔15分钟不调用。


val myWorkRequest = PeriodicWorkRequestBuilder<ReminderWorker>(15, TimeUnit.MINUTES).build()
WorkManager.getInstance(applicationContext)
.enqueueUniquePeriodicWork("work", ExistingPeriodicWorkPolicy.REPLACE, myWorkRequest)

您需要将initialDelay添加到构建器

val myWorkRequest: PeriodicWorkRequest = PeriodicWorkRequest.Builder(
MySimpleWorker::class.java, 3, TimeUnit.HOURS, 1, TimeUnit.HOURS)
.setConstraints(constraints)
.setInitialDelay(2, TimeUnit.HOURS)
.setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.HOURS)
.build()

另一种方法是使用一次性请求来完成此工作。您可以将一次请求调度一次,当该请求被执行并且它的doWork()被调用时,您可以在接下来的15分钟内调度另一个请求,然后像递归一样进行调度。这很直接。

最新更新