Изменения в отношении активных служб

В документации по активным службам описано их текущее поведение в 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 или выше действуют следующие требования:

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

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

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

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

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

В Android 9 появилось разрешение FOREGROUND_SERVICE. Это разрешение необходимо приложениям, которые работают на устройствах с Android 9 и используют активные службы.

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