<услуга>

синтаксис:
<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>
описание:
Объявляет службу, подкласс Service , как один из компонентов приложения. В отличие от активностей, сервисам не хватает визуального пользовательского интерфейса. Они используются для реализации длительных фоновых операций или многофункционального коммуникационного API, который может вызываться другими приложениями.

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

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

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

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

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

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

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

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

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

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

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

android:foregroundServiceType

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

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

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

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

android:isolatedProcess
Если установлено значение "true" , эта служба запускается в рамках специального процесса, изолированного от остальной части системы и не имеющего собственных разрешений. Единственная связь с ним осуществляется через Service 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