Android Broadcast
14.2K subscribers
3.53K photos
347 videos
11 files
5.92K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab
加入频道
#WorkManager #ArchitectureComponents

Workout your tasks with WorkManager — Advanced Topics

Продолжение серии статей о работе с WorkManager. В текущей рассматривается:
1️⃣ Как идентифицировать Task
2️⃣ Как получить статус Task
3️⃣ Политики по повторению выполнения Task (backoff)
4️⃣ Зависимости выполнения Task между собой
5️⃣ Как работать с входными и выходными данными
6️⃣ Как можно управлять многопоточностью в WorkManager
#WorkManager

Unifying Background Task Scheduling on Android

Google проводит унификацию своих библиотек для выполнения задач в фоновом режиме. Суть проста - все мигрируем на WorkManager.

Если кто-то пользуется FirebaseJobDispatcher (FJD) или GCMNetworkManager (GCM), то вам пора браться за гайды по миграции: для FJD и для GCM. Поддержка FJD будет закрыта в апреле 2020, GCM - ноябрь 2020.

Если вы обновите targetSdk вашего приложения до Android 10 (API level 29), то FJD и GCM перестанут работать на Android 6.0+
#WorkManager

When WorkManager Stops Working

Будьте внимательны при использование Work Manager unique work и политики APPEND. Проблема заключается в том, что это политика реализована на цепочках и если одна из задач выполняется с ошибкой, то все последующие не будут выполняться.

Что можно сделать:
👉 Не использовать политику APPEND
👉 Никогда не давать unique work завершаться с ошибкой. Только Success и внутри объект с результатом
👉 Использовать WorkManager.pruneWork()

Ждем когда Google исправит эту досадную реализацию
#Jetpack #ArhitectureComponents #WorkManager

WorkManager 2.3.0

Появилась возможность задавать системе, что выполняемая операция важна, и что процесс должен оставаться живым как можно дольше во время выполнения. Работает механизм поверх Foreground Service. Используйте setForegroundAsync

Также появилась возможность отображать прогресс выполнения задачи с помощью setProgressAsync
#WorkManager

Customizing WorkManager — Fundamentals

Продолжение серии статей о WorkManager, в которой разбирается как изменить настройки работы:
👉 Когда может понадобиться конфигурировать WorkManager самостоятельно
👉 Как предоставить собственную конфигурацию
👉 WorkerFactory: что такое и как добавить поддержку нестандартных конструкторов для подклассов ListenableWorker
👉 DelegatingWorkerFactory - оборачиваем несколько WorkerFactory через стандартную фабрику, вместо конфигурирования WorkManager для использования собственной фабрики
#WorkManager

WorkManager 2.4.0

👉 Больше возможностей для планировщика WorkManager, что запускает WorkRequest
👉 Поддержка RxJava3
👉 Возможность получить WorkInfo, используя WorkQuery.
👉 Возможность получить диагностическую информацию о работе WorkManager
👉 Новая политика ExistingWorkPolicy.APPEND_OR_REPLACE
👉 Возможность задать свой собственный RunnableScheduler для отслеживания WorkRequest, который будет выполнен позже
👉 Возможность динамического добавления фабрик в DelegatingWorkerFactory
👉 Новые правила Android Lint
👉 Улучшения в отслеживании BATTERY_NOT_LOW
👉 Улучшения в работе и исправления багов
#WorkManager

Use WorkManager for immediate background execution

В WorkManage 2.3.0 появилась возможность выполнения задач в Foreground Service. Это хорошо подходит для выполнения долгих задач прямо в текущий момент.

В статье разбирается больше подробностей о том как выполнять WorkRequest в Foreground Service
#Jetpack #WorkManager

WorkManager for Immediate Tasks

C каждый релизом Service отходит на полку и используется только в библиотеках. Нам остается использовать только Foreground Service и WorkManager.

WorkManager предлагает возможность соединить Foreground Service и API WorkManage. В статье все детали как это сделать.
#Jetpack #WorkManager

Вышел WorkManager 2.5.0

Вышла новая стабильная версия WorkManager, которая принесла:
👉 Новый артефакт work-multiprocess, улучающий работу в приложениях со множеством процессов.
👉 Теперь явно можно указать в каком процессе надо выполнять WorkRequest. Надо использовать RemoteWorkManager
👉 Улучшено выполнение WorkRequest, юлагодаря тому что теперь проверяется можно ли запустить JobService для выполнения задач
👉 Размер истории выполненых Job хранится теперь 1 день вместо 7. Если нужно больше, то это можно регулировать с помощью keepResultsForAtLeast() API. Это сделано с целью сокращения расхода места на диске
👉 Новое тестовое Kotlin API
👉 Исправление багов