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

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