Course Content
-
WorkManager для управления фоновыми задачами
- Категории фоновых задач
- Зачем нужен WorkManager?
- Для каких задач подходит WorkManager?
- Описание проекта – Геотрекер
- Анатомия WorkManager. Основные классы
- Создание проекта и добавление необходимых зависимостей
- Создание простой БД на базе Room для хранения координат
- Просмотр информации в БД с помощью Flipper
- Пример разового выполнения WorkManager используя OneTimeWorkRequest
- Критерии выполнения задачи: наличие Wi-Fi, достаточный заряд батареи и другие
- Политики разрешения конфликтов для фоновых задач и режимы повторения
- Получаем координаты через FusedLocationProviderClient
- Сохраняем координаты в базу данных Room
- Запускаем геотрекер раз в 15 минут с помощью PeriodicWorkRequest
- Полезные ссылки и материалы
Анатомия WorkManager. Основные классы
Описание классов WorkManager
Перед тем, как мы отправим на выполнение нашу первую фоновую задачу, давайте рассмотрим из каких классов и компонентов состоит WorkManager:
- WorkManager – главный класс, который будет передавать в работу логику на выполнение через WorkRequest
- Worker – класс, наследником которого должен быть ваш собственный класс в котором нужно определить логику работы фоновой задачи (например сохранение данных в БД, запрос в сеть, загрузка данных и т.д).
- WorkRequest – класс, необходимы для описания критериев запуска задачи (например подключен ли Wi-Fi или достаточно ли заряда батареи). Кроме того, через класс WorkRequest нужно указать тип задачи – разовая (OneTimeWorkRequest) или повторяющаяся (PeriodicWorkRequest) – например делать запрос в сеть каждые 30 минут. Период для повторяющихся задач можно гибко настраивать – об этом мы поговорим чуть позже.
- WorkStatus – пригодится если нужно узнать статус задачи (running, enqueued, finished) конкретного WorkRequest
Отлично! Мы разобрались с основными сущностями библиотеки WorkManager и теперь можем создать первую фоновую задачу!
Предыдущий
Описание проекта – Геотрекер