<услуга>

синтаксис:
<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["camera" | "connectedDevice" |
                                        "dataSync" | "health" | "location" |
                                        "mediaPlayback" | "mediaProjection" |
                                        "microphone" | "phoneCall" |
                                        "remoteMessaging" | "shortService" |
                                        "specialUse" | "systemExempted"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string"
         android:stopWithTask=["true" | "false"]>
    ...
</service>
содержится в:
<application>
может содержать:
<intent-filter>
<meta-data>
<property>
описание:
Объявляет сервис, подкласс Service , в качестве одного из компонентов приложения. В отличие от Activity, сервисы не имеют визуального пользовательского интерфейса. Они используются для реализации длительных фоновых операций или для создания расширенного API для обмена данными, который может вызываться другими приложениями.

Все службы должны быть представлены элементами <service> в файле манифеста. Любые службы, не объявленные там, не видны системе и никогда не запускаются.

Примечание: В Android 8.0 (уровень API 26) и выше система ограничивает возможности вашего приложения во время работы в фоновом режиме. Для получения дополнительной информации см. руководства, посвященные ограничениям на выполнение в фоновом режиме и ограничениям на определение местоположения в фоновом режиме .

атрибуты:
android:description
Удобочитаемая строка, описывающая услугу. Описание задается как ссылка на строковый ресурс, чтобы его можно было локализовать, как и другие строки в пользовательском интерфейсе.
android:directBootAware

Поддерживает ли служба функцию Direct-Boot , то есть может ли она запускаться до разблокировки устройства пользователем.

Примечание: Во время прямой загрузки служба вашего приложения может получить доступ только к данным, хранящимся в защищенном хранилище устройства .

Значение по умолчанию — "false" .

android:enabled
Указывает, может ли система создать экземпляр сервиса. Если может, значение "false" "true" если нет. Значение по умолчанию - "true" .

Элемент <application> имеет собственный атрибут enabled , который применяется ко всем компонентам приложения, включая сервисы. Для включения сервиса атрибуты <application> и <service> должны быть оба равны "true" , как и по умолчанию. Если хотя бы один из них равен "false" , сервис отключен и не может быть создан.

android:exported
Определяет, могут ли компоненты других приложений вызывать службу или взаимодействовать с ней. Если могут, значение равно "true" "false" если нет. Если значение равно "false" , то запускать службу или подключаться к ней могут только компоненты одного и того же приложения или приложений с одинаковым идентификатором пользователя.

Значение по умолчанию зависит от того, содержит ли служба фильтры намерений. Отсутствие каких-либо фильтров означает, что ее можно вызвать только с указанием точного имени класса. Это подразумевает, что служба предназначена только для использования внутри приложения, поскольку другие не знают имени класса. Таким образом, в этом случае значение по умолчанию — "false" . С другой стороны, наличие хотя бы одного фильтра подразумевает, что служба предназначена для внешнего использования, поэтому значение по умолчанию — "true" .

Этот атрибут — не единственный способ ограничить доступ к сервису для других приложений. Вы также можете использовать разрешение для ограничения внешних объектов, которые могут взаимодействовать с сервисом. См. атрибут permission .

android:foregroundServiceType

Указывает, что служба является службой переднего плана , удовлетворяющей определенному сценарию использования. Например, служба переднего плана типа "location" указывает, что приложение получает текущее местоположение устройства, обычно для продолжения действия, инициированного пользователем и связанного с местоположением устройства.

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

android:icon
Значок, представляющий сервис. Этот атрибут устанавливается как ссылка на ресурс drawable, содержащий определение изображения. Если он не установлен, вместо него используется значок, указанный для всего приложения. См. атрибут icon элемента <application> .

Значок сервиса, заданный здесь или элементом <application> , также является значком по умолчанию для всех фильтров намерений сервиса. См. атрибут icon элемента <intent-filter> .

android:isolatedProcess
Если установлено значение "true" , эта служба работает в рамках специального процесса, изолированного от остальной системы и не имеющего собственных прав доступа. Взаимодействие с ней осуществляется только через API службы, посредством привязки и запуска.
android:label
Удобочитаемое имя для сервиса. Если этот атрибут не задан, используется метка, заданная для всего приложения. См. атрибут label элемента <application> .

Метка сервиса, заданная здесь или элементом <application> , также является меткой по умолчанию для всех фильтров намерений сервиса. См. атрибут label элемента <intent-filter> .

Метка задается как ссылка на строковый ресурс, чтобы ее можно было локализовать так же, как и другие строки в пользовательском интерфейсе. Однако, для удобства при разработке приложения, ее также можно задать как обычную строку.

android:name
Имя подкласса Service , реализующего данный сервис. Это полное имя класса, например, "com.example.project.RoomService" . Однако, в качестве сокращения, если первый символ имени — точка, например, ".RoomService" , она добавляется к имени пакета, указанному в элементе <manifest> .

После публикации приложения не меняйте это имя , если только вы не установите android:exported ="false" .

Значений по умолчанию нет. Необходимо указать имя.

android:permission
Название разрешения, необходимого сущности для запуска службы или привязки к ней. Если вызывающему методу startService() , bindService() или stopService() не предоставлено это разрешение, метод не будет работать, и объект Intent не будет доставлен в службу.

Если этот атрибут не задан, к службе применяются разрешения, установленные атрибутом permission элемента <application> . Если ни один из атрибутов не задан, служба не защищена разрешением.

Для получения дополнительной информации о разрешениях см. раздел «Разрешения» в обзоре манифеста приложения и в рекомендациях по безопасности .

android:process
Имя процесса, в котором выполняется служба. Обычно все компоненты приложения работают в процессе по умолчанию, созданном для приложения. Он имеет то же имя, что и пакет приложения. Атрибут process элемента <application> может устанавливать разные значения по умолчанию для всех компонентов. Но компонент может переопределить значение по умолчанию с помощью собственного атрибута process , что позволяет распределить приложение по нескольким процессам.

Если имя, присвоенное этому атрибуту, начинается с двоеточия ( : ), то при необходимости создается новый процесс, являющийся частным для приложения, и служба запускается в этом процессе.

Если имя процесса начинается с маленькой буквы, служба запускается в глобальном процессе с этим именем, при условии, что у нее есть на это разрешение. Это позволяет компонентам в разных приложениях совместно использовать один процесс, снижая потребление ресурсов.

android:stopWithTask
Если установлено значение "true" , система автоматически останавливает работу сервиса, когда пользователь удаляет задачу, связанную с активностью, принадлежащей приложению. Значение по умолчанию — "false" .
См. также:
<application>
<activity>
введено в:
Уровень API 1