Изменения в службах переднего плана

В документации по службам переднего плана описывается текущее поведение служб переднего плана Android. Документация содержит рекомендации по передовым методам работы для большинства приложений, независимо от того, ориентированы ли они на самую последнюю версию Android.

На этой странице описаны некоторые из последних важных изменений в работе служб переднего плана и их последствия для приложений, не ориентированных на последнюю версию платформы Android. Во многих случаях рекомендации, которые ранее были необязательными для приложений, ориентированных на более низкие уровни API, становятся обязательными для приложений, ориентированных на более высокие уровни API.

Android 16 (уровень API 36)

Следующие изменения касаются приложений, работающих на Android 16 и выше, независимо от целевого уровня API:

  • Фоновые задачи, запущенные службой переднего плана, теперь должны соответствовать своим квотам времени выполнения. Это касается задач, запланированных непосредственно с помощью JobScheduler , а также задач, созданных другими библиотеками, такими как WorkManager или DownloadManager .

    Для передачи данных в ответ на действия пользователя рекомендуется использовать инициируемое пользователем задание на передачу данных . На такие задания не распространяются обычные квоты на задания.

Android 15 (уровень API 35)

Следующие требования применяются к приложениям, ориентированным на API уровня 35 или выше:

Android 14 (уровень API 34)

Следующие требования относятся к приложениям, ориентированным на API уровня 34 или выше:

  • Необходимо объявить все службы переднего плана с указанием их типов.
  • Приложения должны запрашивать соответствующий тип разрешения для того типа работы, который будет выполнять служба переднего плана. Каждому типу службы переднего плана соответствует свой тип разрешения. Например, если приложение запускает службу переднего плана, использующую камеру, необходимо запросить разрешения FOREGROUND_SERVICE и FOREGROUND_SERVICE_CAMERA . Если приложение ориентировано на уровень API 34 или выше и не запрашивает соответствующее конкретное разрешение, система генерирует исключение SecurityException .

Android 12 (уровень API 31)

Следующие требования применяются к приложениям, ориентированным на API уровня 31 или выше:

Android 11 (уровень API 30)

Следующие требования применяются к приложениям, ориентированным на API уровня 30 или выше:

Android 10 (уровень API 29)

К приложениям, ориентированным на API уровня 29 или выше, применяются следующие требования:

  • Если фоновые службы приложения используют информацию о местоположении, приложение должно объявить службу с указанием типа службы location .

Android 9 (уровень API 28)

В Android 9 введено разрешение FOREGROUND_SERVICE . Приложения, работающие на Android 9 и использующие службы переднего плана, должны иметь это разрешение.

Если приложение, ориентированное на API уровня 28 или выше, пытается создать службу переднего плана без запроса разрешения FOREGROUND_SERVICE , система генерирует исключение SecurityException .