WorkManager
WorkManager
Инструмент планирования отложенных асинхронных задач, которые должны надежно выполняться.
• для описания задачи необходимо наследоваться от класса Worker
и определить метод doWork
. Код внутри метода doWork
будет выполнен в рабочем потоке WorkManager
.
• работа может быть одноразовой OneTimeWorkRequestBuilder
или периодической PeriodicWorkRequestBuilder
.
• ограничение на запуск: раз в 15 мин.
• условия запуска: charging, battery level, network/wi-fi connected, device sleep, storage not low.
• поддерживает цепочки задач и параллельное выполнение.
• под капотом JobScheduler
(API 23+), GcmNetworkManager/AlarmManager (API 14-22, has Google Play Services).
• использоватьдля критических задач, которые должны пережить смерть процесса приложения.
• хранится в sqlite и может запуститься в указанное время после перезагрузки приложения.
WorkManager. Вопросы на собесе
- Чем WorkManager отличается от других инструментов для работы с фоновыми задачами, такими как JobScheduler, AlarmManager, или Services?
- Какие есть типы Workers в WorkManager, и в чем их различия?
- Как планировать выполнение задач с задержкой или повторением?
- Как обеспечить надежность выполнения задач в WorkManager на разных версиях Android?
- Какой подход используется для безопасного выполнения фоновых операций в Android 8.0 и выше?
• JobScheduler
• HandlerThread
• AsyncTask
• WorkManager
- Какой метод используется для запуска WorkManager?
• executeWork
• enqueue
• startWork
• runTask