Похоже, что использование ограничения NetworkType.CONNECTED при планировании периодических задач в WorkManager не работает для меня надежно.
Один способВоспроизвести ...
Устройство Android, на котором установлено приложение, подключено к точке доступа WiFi.Заблокируйте трафик на устройство с помощью фильтра MAC, который отбрасывает пакеты.Как и ожидалось, сетевые вызовы на устройстве начинают сбой, и WM обрабатывает его.Затем отключите фильтр MAC, блокирующий трафик, восстанавливающий доступ к устройству или с него.Можно ожидать, что задачи возобновятся, но они этого не делают.Другие сетевые вызовы работают без проблем, но задачи WM с сетевым ограничением никогда не запускаются до тех пор, пока приложение не будет перезапущено (остановлено / запущено снова)
Temp.разрешение : снятие ограничения NetworkType.CONNECTED
, когда планирование задач в WorkManager решает проблему, но, конечно, вы будете делать запросы, даже если сеть не работает, пробуждая устройство и без необходимости расходуя батарею.
- Компиляция SDK версии 28
- Android 5.1.1
Если у кого-то есть лучшая работа, пожалуйста, поделитесь.
Обновление: Еще одним ключевым моментом является обеспечение того, чтобы любая периодическая работа всегда возвращалась ListenableWorker.Result#success()