val request = PeriodicWorkRequestBuilder<FooWorker>(1, TimeUnit.DAYS).build()
WorkManager.getInstance().enqueueUniquePeriodicWork(
"FOO",
ExistingPeriodicWorkPolicy.REPLACE,
request
)
Приведенный выше код выполняется в onCreate
из Application
, чтобы запрос был поставлен в очередь. Однако это вызовет проблему, когда FooWorker
будет запускаться каждый раз, когда пользователь запускает приложение, потому что ExistingPeriodicWorkPolicy.REPLACE
отменяет предыдущую работу и ставит новую работу в очередь, что приводит к ее немедленному запуску.
Если мы перейдем на ExistingPeriodicWorkPolicy.KEEP
, мы не сможем заменить работу даже при смене периода или работника.
Есть ли способ заменить запрос после выполнения текущего?
Например, исходный запрос выполняется 1 раз в день, а новый запрос - 1 раз в час. После выполнения следующего запроса происхождения замените его новым запросом.