WorkManager / PeriodicWorkRequest - Что происходит со следующими работами, когда SO блокирует выполнение одной из них? - PullRequest
1 голос
/ 17 июня 2019

У меня возникли проблемы с некоторыми китайскими ПЗУ, которые проводят агрессивную политику в отношении фоновых заданий.

При тестировании с Xiaomi MI 9 - API 28 - MIUI 10 я проверил, что иногда метод doWork от зарегистрированного работника не вызывается, а другой - вызывается. При отключении параметров оптимизации (блокировка батареи и фонового приложения, которые включены по умолчанию), кажется, что они работают более согласованно, но я не уверен, будут ли мои пользователи делать это или даже захотят.

Вопрос в том, если я зарегистрировал периодическую работу с 1-дневным повторением, и в один из дней она заблокирована (поэтому doWork не вызывается и, следовательно, нет результатов SUCCESS, ERROR или RETRY для ожидающей работы). возвращается), он будет выполнен на следующий день, независимо от этого, или он будет навсегда заблокирован, потому что "цепь была разорвана"?

Я имею в виду, ставит ли библиотека в очередь следующую работу сразу после завершения предыдущей работы или они зарегистрированы в системе как периодическая, и результат одной из них не имеет отношения к выполнению следующей?

1 Ответ

0 голосов
/ 19 июня 2019

Если работа никогда не выполняется, следующая итерация также не запустится, если только пользователь не откроет приложение вручную за прошедшее время.

...