val request = PeriodicWorkRequestBuilder<FooWorker>(1, TimeUnit.DAYS).build()
WorkManager.getInstance().enqueueUniquePeriodicWork(
"FOO",
ExistingPeriodicWorkPolicy.REPLACE,
request
)
上述代码在
Application
的onCreate
中运行,以确保请求被排队。然而,这会导致一个问题,即FooWorker
将在每次用户启动应用程序时运行,因为ExistingPeriodicWorkPolicy.REPLACE
会取消先前的工作并排队新工作,从而使它立即运行。如果我们改为使用
ExistingPeriodicWorkPolicy.KEEP
,即使周期或工作者已更改,我们也无法替换该工作。有没有一种方法可以在当前请求运行后替换请求?
例如,原始请求每天运行1次,新请求每小时运行1次。在下一个原始请求运行后,然后用新请求替换它。