#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…
#Service
Android Foreground Service Restrictions
Разбор особенностей работы Foreground Service (которые с Android 8 являются единственным способом работы приложения в фоне). Вендоры нас все также "радуют" и блокируют service, даже если он foreground.
В статье рассказывает про проблемы и как ее решали (нужно запрашивать добавлять приложение в исключение для работы в фоне)
Android Foreground Service Restrictions
Разбор особенностей работы Foreground Service (которые с Android 8 являются единственным способом работы приложения в фоне). Вендоры нас все также "радуют" и блокируют service, даже если он foreground.
В статье рассказывает про проблемы и как ее решали (нужно запрашивать добавлять приложение в исключение для работы в фоне)
Medium
Android Foreground Service Restrictions
It would seem that everything should work, but there are also limitations in foreground services
#service
The “misbehaving” foreground service in Android (5 мин)
История как приложения крешится при запуске Foreground Service, если запустить его асинхронно (не из главного потока). Решение простой - пост на Handler или можно coroutine в
The “misbehaving” foreground service in Android (5 мин)
История как приложения крешится при запуске Foreground Service, если запустить его асинхронно (не из главного потока). Решение простой - пост на Handler или можно coroutine в
Dispatchers.MainВ Android 15 Foreground Service типов
Изменение коснется приложений с targetSdk Android 15
Чем вызвано такое решение я не понимаю и почему также выбрано именно такое ограничение по времени. В реале я не знаю как много происходит синхронизаций данных и может 6 часов действительно много, а длинные окна синхронизации делают зловреды
#android15 #service
dataSync и mediaProcessing будут ограничены лимитом 6 часов в течении 24 часового окна. При превышении лимита вызовется новый callback метод Service.onTimeout() и надо будет остановить Service. Лимит не для каждого приложения, а для всех приложений с такими типами Service. На замену рекомендуется использовать альтернативные API: WorkManager, shortService и другие типы Foreground Service. Изменение коснется приложений с targetSdk Android 15
Чем вызвано такое решение я не понимаю и почему также выбрано именно такое ограничение по времени. В реале я не знаю как много происходит синхронизаций данных и может 6 часов действительно много, а длинные окна синхронизации делают зловреды
#android15 #service
👍10
До Android 15 приложения с разрешением
#android15 #service
SYSTEM_ALERT_WINDOW могли запускать Foreground Service даже если приложение в фоне, теперь правила меняются. В Android 15 теперь еще нужно будет иметь видимое окно (пометить его флагом TYPE_APPLICATION_OVERLAY)#android15 #service
👍7
Media is too big
VIEW IN TELEGRAM
В Android ввели много ограничений на запуск работы в фоне, как долго она может выполняться и когда запускается. Я собрал всю информацию воедино, чтобы рассказать вам про актуальные API и для каких задач что выбирать.
#AndroidBroadcast #workmanager #service
Please open Telegram to view this post
VIEW IN TELEGRAM
❤36👍24🔥7👎1