Освой Android играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
9-й курс/Закрытая зона
Обновлено 18 июля 2024
Очень часто приложениям нужно выполнять какую-то задачу в фоновом режиме (загрузка файла, синхронизация, сложные вычисления с данными) не сразу, а в определённый удобный момент времени. Первоначально для этих целей использовали службы. Но в последних версиях Android возможности служб сильно ограничили, запрещая им постоянно висеть в памяти устройства.
Также требовалось выполнять задачи по расписанию. Раньше использовались различные инструменты, типа AlarmManager, JobScheduler, Firebase JobDispatcher. В принципе, эти инструменты по-прежнему доступны разработчику, но WorkManager объединил всё лучшее и предлагает удобное средство для выполнения задач.
WorkManager позволяет запускать фоновые задачи последовательно или параллельно, передавать в них данные, получать из них результат, отслеживать статус выполнения и запускать только при соблюдении заданных условий. Умеет запускаться по условиям: наличие интернета, место на диске, на зарядке. Может работать без привязки к Google Play services. Не расходует зря заряд батареи. Может работать в связке с LiveData.
Например, мы накладываем сложный фильтр на изображение, упаковываем полученные изображения в архив и загружаем на сервер.
Созданные задачи сохраняются в системе и работают и после закрытия приложения и даже после перезагрузки. Поэтому нелишним будет сохранять идентификаторы созданных задач, чтобы можно их было отменять.
Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью
WorkManager: Back to the foreground - YouTube
Advanced Usage of WorkManager in multi-process apps | by Caren Chang | Android Developers | Medium
Как работает WorkManager в Android / Хабр