fbpx

Course Content

Total learning: 15 lessons Time: 2 hours

Зачем нужен WorkManager?

Введение. Или зачем нужен WorkManager?

Для начала, давайте разберёмся, для чего нужен WorkManager. С каждым выходом новой версии Android, разработчики операционной системы всё больше и больше уделяли внимание оптимизации времени работы батареи телефона.

Начиная с Android 6.0 Marshmallow  разработчики Google предложили так называемый Doze mode – то есть такой режим в котором если устройство лежит без движения и без зарядки, спустя час оно переходит в специальный режим, когда почти все приложения перестают выполнять какую-то фоновую работу и потреблять батарею. Кроме того, начиная с Android 8.0 Oreo работа сервисов также была ограничена.

Таким образом, до 2018 года, для выполнения работы в фоне разработчику необходимо было разбираться во всех деталях работы фоновых задач для каждой версии операционной системы.

If the device is running on API Level 23 or higher, JobScheduler is used. On API Levels 14-22, GcmNetworkManager is chosen if it’s available, otherwise, a custom AlarmManager and BroadcastReciever implementation is used as a fallback.

WorkManager облегчает такие задачи и под капотом имеет реализацию, основанную на базе JobScheduler, Firebase JobDispatcher, Alarm Manager + Broadcast receivers. В зависимости от версии операционной системы, доступности Google Play сервисов на телефоне WorkManager выберет подходящую реализацию и выполнит задачу. Кроме того, что вам теперь не нужно продумывать все нюансы реализации работы фоновых задач, WorkManager имеет удобный интерфейс, скрывающий все сложности, позволяя разработчику сконцентрироваться на бизнес-логике задачи.

Далее, мы рассмотрим, для каких задач лучше всего подходит WorkManager