Android WorkManager PeriodicWorkRequest повторяется слишком рано - PullRequest
0 голосов
/ 03 апреля 2020
val repeatedReq = PeriodicWorkRequest.Builder(
            MyWorkerClass::class.java,15,TimeUnit.MINUTES).build()
            WorkManager.getInstance(this).enqueue(repeatedReq)

Мой WorkManager вызывает doWork каждые 3-6 минут, а не каждые 15 минут, как я указал в своем коде. Кто-нибудь знает почему? Благодаря.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Как указывает @Kasim, PeriodicWorkRequest имеет минимальный интервал 15 минут. если вы хотите иметь уникальный экземпляр вашего запроса, вы должны использовать:

val repeatedReq = PeriodicWorkRequest.Builder(MyWorkerClass::class.java,15,TimeUnit.MINUTES).build()

WorkManager.getInstance(this).enqueueUniquePeriodicWork("YOURUNIQUENAME", ExistingPeriodicWorkPolicy.KEEP, repeatedReq)
  • ExistingPeriodicWorkPolicy.KEEP: если существует ожидающая (незавершенная) работа с одно и то же уникальное имя, ничего не делать. В противном случае вставьте новую заданную работу.

  • ExistingPeriodicWorkPolicy.REPLACE: если существует незавершенная (незавершенная) работа с тем же уникальным именем, отмените ее и удалите. Затем вставьте новую заданную работу.

0 голосов
/ 11 апреля 2020
  • Периоды c Работа имеет минимальный интервал 15 минут.

  • Если он запускается каждые 3-6 минут, у вас много рабочих менеджеров. Вы забыли отменить остальные

...