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