Выполнит ли менеджер работ androidx JetPack работу, даже если установленные ограничения никогда не будут выполнены в течение повторяющегося времени?

Например: я ставлю PeriodicWorkRequest с интервалом времени 24 часа с ограничениями необходимости сети и оплаты. Если ограничения не будут выполнены в течение 24 часов, будет ли менеджер по работе когда-либо делать doWork, как они упоминались на сайте руководства по разработке Android под названием " запустить и забыть" и " WorkManager предназначен для задач, которые требуют гарантии, что система будет их запускать"

1 ответ

TL;DR WorkManager выполняет работу, только если выполнены все ограничения.

Одним из наиболее распространенных вариантов использования ограничений является взаимодействие с сервером только при наличии подключения к Интернету. Поэтому запускать задачу вообще не имеет смысла, если соединение недоступно.

Информация из документов (выделено мое):

WorkManager - это библиотека, используемая для постановки в очередь работы, которая гарантированно будет выполняться после выполнения ее ограничений.

источник: https://developer.android.com/reference/androidx/work/WorkManager

При желании вы можете указать ограничения на время запуска задачи. Например, вы можете указать, что задача должна выполняться только тогда, когда устройство находится в режиме ожидания и подключено к источнику питания.

источник: https://developer.android.com/topic/libraries/architecture/workmanager

Но чтобы быть на 100% уверенным, я протестировал его на примере кода, и он подтвердил все вышеизложенное.

Другие вопросы по тегам