Документация foreground service описывает текущее поведение foreground services Android. Документация дает рекомендации по лучшим практикам для большинства приложений, независимо от того, нацелены ли они на самую последнюю версию Android.
На этой странице описываются некоторые из последних важных изменений в службах переднего плана и последствия для приложений, которые не нацелены на самую последнюю версию платформы Android. Во многих случаях передовые практики, которые были необязательными для приложений, нацеленных на более низкие уровни API, становятся обязательными для приложений, нацеленных на более высокие уровни API.
Android 16 (уровень API 36)
Следующие изменения применяются к приложениям, работающим на Android 16 или выше, независимо от того, на какой уровень API они ориентированы:
Фоновые задания, запущенные из службы переднего плана, теперь должны придерживаться своих соответствующих квот времени выполнения. Это включает задания, запланированные напрямую с помощью
JobScheduler
, а также задания, созданные другими библиотеками, такими как WorkManager илиDownloadManager
.Для передачи данных в ответ на действие пользователя рассмотрите возможность использования задания по передаче данных, инициированного пользователем . Эти задания освобождены от обычных квот на задания.
Android 15 (уровень API 35)
К приложениям, ориентированным на API уровня 35 или выше, применяются следующие требования:
- Существуют новые ограничения на то, как долго может работать служба переднего плана
dataSync
. Эти ограничения описаны в разделе Поведение тайм-аута службы переднего плана . Аналогичные ограничения применяются к (новому в Android 15) типу службы переднего планаmediaProcessing
. - Службам переднего плана
BOOT_COMPLETED
больше не разрешено запускать определенные службы переднего плана . - Приложения, имеющие разрешение
SYSTEM_ALERT_WINDOW
, могут запускать службы переднего плана из фона только в том случае, если в настоящее время у них есть видимое окно наложения (или если они соответствуют одному из других исключений из ограничений фонового запуска ). Ранее исключение для таких приложений было шире.
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
.
Документация foreground service описывает текущее поведение foreground services Android. Документация дает рекомендации по лучшим практикам для большинства приложений, независимо от того, нацелены ли они на самую последнюю версию Android.
На этой странице описываются некоторые из последних важных изменений в службах переднего плана и последствия для приложений, которые не нацелены на самую последнюю версию платформы Android. Во многих случаях передовые практики, которые были необязательными для приложений, нацеленных на более низкие уровни API, становятся обязательными для приложений, нацеленных на более высокие уровни API.
Android 16 (уровень API 36)
Следующие изменения применяются к приложениям, работающим на Android 16 или выше, независимо от того, на какой уровень API они ориентированы:
Фоновые задания, запущенные из службы переднего плана, теперь должны придерживаться своих соответствующих квот времени выполнения. Это включает задания, запланированные напрямую с помощью
JobScheduler
, а также задания, созданные другими библиотеками, такими как WorkManager илиDownloadManager
.Для передачи данных в ответ на действие пользователя рассмотрите возможность использования задания по передаче данных, инициированного пользователем . Эти задания освобождены от обычных квот на задания.
Android 15 (уровень API 35)
К приложениям, ориентированным на API уровня 35 или выше, применяются следующие требования:
- Существуют новые ограничения на то, как долго может работать служба переднего плана
dataSync
. Эти ограничения описаны в разделе Поведение тайм-аута службы переднего плана . Аналогичные ограничения применяются к (новому в Android 15) типу службы переднего планаmediaProcessing
. - Службам переднего плана
BOOT_COMPLETED
больше не разрешено запускать определенные службы переднего плана . - Приложения, имеющие разрешение
SYSTEM_ALERT_WINDOW
, могут запускать службы переднего плана из фона только в том случае, если в настоящее время у них есть видимое окно наложения (или если они соответствуют одному из других исключений из ограничений фонового запуска ). Ранее исключение для таких приложений было шире.
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
.