【发布时间】:2018-10-10 03:35:24
【问题描述】:
val request = PeriodicWorkRequestBuilder<FooWorker>(1, TimeUnit.DAYS).build()
WorkManager.getInstance().enqueueUniquePeriodicWork(
"FOO",
ExistingPeriodicWorkPolicy.REPLACE,
request
)
上面的代码在Application 的onCreate 中运行,以确保请求入队。但是,这将导致一个问题,即每次用户启动应用程序时FooWorker 都会运行,因为ExistingPeriodicWorkPolicy.REPLACE 取消以前的工作并将新工作排入队列,这会导致它立即运行。
如果我们换成ExistingPeriodicWorkPolicy.KEEP,即使换了工期,也换不了工。
有没有办法在当前请求运行后替换请求?
例如,源请求每天运行 1 次,新请求每小时运行 1 次。运行下一个源请求后,将其替换为新请求。
【问题讨论】:
标签: android kotlin android-workmanager