#Service #Background
Pitfalls of a foreground Service lifecycle от Maciej Witowski
Android 8.0 ввел новые правила для приложений - по максимум показывать пользователю активность в фоне и управлению по ее запуску отдавать системе (JobScheduler). Также ужесточением политики было необходимость в этом году всем приложением поддерживать minSdk = Android 8.0.
Одним из больших изменений, которые пришлось делать разработчикам при адаптации своих приложений - уход от обычных Service в сторону Foreground Service либо JobScheduler.
Основные правила при работе с Foreground Service:
1️⃣ Не вызывайте Service.startForeground() слишком рано
2️⃣ Вызывайте Service.stopSelf() после startForeground()
3️⃣ Останавливайте Service только из него самого
Нарушение правил карается падением приложения по принципам работы на Android 8.0+ 😢
Соблюдение этих правил сводиться к тому, что запуск Context.startForegroundService() всегда должен сводиться в обязательному наличию вызова Service.startForeground().
Pitfalls of a foreground Service lifecycle от Maciej Witowski
Android 8.0 ввел новые правила для приложений - по максимум показывать пользователю активность в фоне и управлению по ее запуску отдавать системе (JobScheduler). Также ужесточением политики было необходимость в этом году всем приложением поддерживать minSdk = Android 8.0.
Одним из больших изменений, которые пришлось делать разработчикам при адаптации своих приложений - уход от обычных Service в сторону Foreground Service либо JobScheduler.
Основные правила при работе с Foreground Service:
1️⃣ Не вызывайте Service.startForeground() слишком рано
2️⃣ Вызывайте Service.stopSelf() после startForeground()
3️⃣ Останавливайте Service только из него самого
Нарушение правил карается падением приложения по принципам работы на Android 8.0+ 😢
Соблюдение этих правил сводиться к тому, что запуск Context.startForegroundService() всегда должен сводиться в обязательному наличию вызова Service.startForeground().
Medium
Pitfalls of a foreground Service lifecycle
As part of Google Play’s target API level requirement existing apps need to target at least Android 8.0. One of the migration steps is…
Теперь если вы делаете сетевой запрос при уходе приложения в фон, когда вы не используете WorkManager или Foreground Service, то такой запрос будет остановлен с исключением UnknownHostException (стандартно выбрасывается если нет сети или сервер невозможно найти) или другой IOException.
Я отмечу изменений как положительное для пользователей и общего состояния устройства. Google форсирует переход разработчиков API, предназначенные для определенных целей и слежением за выполняемой работой.
Изменение применяется на Android 15 и выше для всех приложений с targetSdk=35+
Источник тут
#android15
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯47👍23❤8