<Dienst>

Syntax:
<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" >
    ...
</service>
enthalten in:
<application>
kann Folgendes enthalten:
<intent-filter>
<meta-data>
description:
Deklariert einen Dienst, eine abgeleitete Service-Klasse, als eine der Anwendungskomponenten. Im Gegensatz zu Aktivitäten haben Dienstleistungen visueller Benutzeroberfläche. Sie dienen dazu, Hintergrunddaten mit langer Ausführungszeit zu implementieren Operationen oder eine umfangreiche API zur Kommunikation nutzen, die von anderen Anwendungen.

Alle Dienste müssen durch <service>-Elemente dargestellt werden in der Manifestdatei. Alle nicht deklarierten Elemente werden nicht angezeigt. vom System und wird nie ausgeführt.

Hinweis:Unter Android 8.0 (API-Level 26) und höher gelten die Systemlimits was Ihre App tun kann, während sie im Hintergrund ausgeführt wird. Für finden Sie in den Leitfäden Beschränkungen für die Hintergrundausführung und Standort im Hintergrund .

Attribute:
android:description
Ein für Nutzer lesbarer String, der den Dienst beschreibt. Die Beschreibung ist festgelegt als Referenz zu einer Zeichenfolgenressource, damit sie wie andere Zeichenfolgen lokalisiert werden kann auf der Benutzeroberfläche.
android:directBootAware

Ob der Dienst Direct-Boot-fähig ist, also: ob er ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.

Hinweis : Während der Direct Boot, ein Dienst in kann Ihre Anwendung nur auf die Daten zugreifen, Gerätegeschützter Speicher.

Der Standardwert ist "false".

android:enabled
Gibt an, ob der Dienst vom System instanziiert werden kann. Es ist "true", wenn dies möglich ist, und "false", wenn nicht. Der Standardwert ist "true".

Das <application>-Element hat eine eigene Attribut „enabled“, das für alle gilt Anwendungskomponenten wie Dienste. Die <application> und <service> müssen beide "true" sein, da sie sind standardmäßig für den Dienst aktiviert. Wenn einer der folgenden Werte zutrifft: "false" ist der Dienst deaktiviert und kann nicht instanziiert werden.

android:exported
Ob Komponenten anderer Anwendungen aufrufen können oder mit ihm interagieren. Es ist "true", wenn möglich, und "false", wenn nicht. Wenn der Wert "false" ist, werden nur Komponenten derselben Anwendung oder Anwendungen mit derselben Nutzer-ID können den Dienst starten oder eine Bindung an ihn vornehmen.

Der Standardwert hängt davon ab, ob der Dienst Intent-Filter enthält. Die Wenn keine Filter vorhanden sind, kann er nur durch Angabe von und ihren genauen Klassennamen. Dies bedeutet, dass der Dienst nur für Personen mit anwendungsinterne Verwendung, da andere den Klassennamen nicht kennen. Also, in In diesem Fall ist der Standardwert "false". Andererseits bedeutet das Vorhandensein mindestens eines Filters, dass der Dienst ist für die externe Verwendung vorgesehen, daher ist der Standardwert "true".

Dieses Attribut ist nicht die einzige Möglichkeit, die Verfügbarkeit eines Dienstes für andere Anwendungen. Sie können auch eine Berechtigung verwenden, um die externen Entitäten einzuschränken, mit dem Dienst interagieren können. Siehe permission .

android:foregroundServiceType

Gibt an, dass der Dienst ein Dienste im Vordergrund, die eine für einen bestimmten Anwendungsfall. Ein Dienst vom Typ "location" gibt an, dass eine App den aktuellen Stand des Geräts erhält. in der Regel nach Weiter Eine vom Nutzer initiierte Aktion in Bezug auf den Gerätestandort.

Sie können einem bestimmten Dienst mehrere Typen .

android:icon
Ein Symbol für den Dienst. Dieses Attribut ist festgelegt als Verweis auf eine Drawable-Ressource, die die Bilddefinition enthält Wenn nicht festgelegt, wird das für die Anwendung angegebene Symbol stattdessen als Ganzes verwendet. Siehe <application> icon-Attributs des Elements.

Das Symbol des Dienstes, das hier oder vom <application>-Element, ist auch das Standardsymbol für alle Intent-Filter des Dienstes. Weitere Informationen finden Sie in der <intent-filter> Element icon-Attribut.

android:isolatedProcess
Wenn dieser Wert auf "true" gesetzt ist, wird dieser Dienst in einem speziellen Prozess ausgeführt, der vom und hat keine eigenen Berechtigungen. Die einzige Kommunikation damit erfolgt über die Service API, wobei Bindung und Start.
android:label
Ein für Nutzer lesbarer Name für den Dienst. Wenn dieses Attribut nicht festgelegt ist, gilt das Label für die Anwendung als Ganzes verwendet werden. Weitere Informationen finden Sie in der<application> label-Attribut.

Das Label des Dienstes, das hier oder vom <application>-Element, ist auch das Standardlabel für alle Intent-Filter des Dienstes. Weitere Informationen finden Sie in der <intent-filter> Element label-Attribut.

Das Label wird als Verweis auf eine Stringressource festgelegt, sodass kann er wie andere Zeichenfolgen in der Benutzeroberfläche lokalisiert werden. Der Einfachheit halber sollten Sie kann auch als Rohstring festgelegt werden.

android:name
Der Name der abgeleiteten Klasse Service, die für den Dienst. Dies ist ein voll qualifizierter Klassenname, z. B. "com.example.project.RoomService" Kurz gesagt: ist das erste Zeichen des Namens ein Punkt, z. B. ".RoomService", wird er an den Paketnamen angehängt, der in der <manifest>-Element.

Nachdem Sie Ihre Anwendung veröffentlicht haben, sollten Sie nicht diesen Namen ändern, es sei denn, Sie legen android:exported="false" fest.

Es gibt keine Standardeinstellung. Der Name muss angegeben werden.

android:permission
Der Name einer Berechtigung, die eine Entität benötigt, um den Dienst starten oder eine Bindung daran anbinden. Wenn ein Aufrufer von startService(), bindService() oder stopService() erhält diese Berechtigung nicht, funktioniert die Methode nicht Intent-Objekt wird nicht an den Dienst gesendet.

Wenn dieses Attribut nicht festgelegt ist, wird die vom <application> Element permission für den Dienst gilt. Wenn keines der beiden Attribute festgelegt ist, wird der Dienst nicht durch eine Berechtigung geschützt sind.

Weitere Informationen zu Berechtigungen finden Sie in der Berechtigungen in der App-Manifestübersicht und Sicherheitsrichtlinien.

android:process
Der Name des Prozesses, in dem der Dienst ausgeführt wird. Normalerweise werden alle Komponenten einer Anwendung in dem Standardprozess ausgeführt, der für den . Es hat denselben Namen wie das Anwendungspaket. Die <application> Element process unterschiedliche Werte für alle Komponenten. Eine Komponente kann jedoch den Standardwert mit einem eigenen process-Attribut, sodass Sie Ihre in mehreren Prozessen anwenden können.

Wenn der diesem Attribut zugewiesene Name mit einem Doppelpunkt (:) beginnt, wird ein neuer ist ein auf die Anwendung gebundener Prozess und wird erstellt, wenn er benötigt der Dienst ausgeführt wird.

Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird der Dienst ausgeführt in einem globalen Prozess dieses Namens erfolgen, sofern er dazu berechtigt ist. So können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, Ressourcennutzung.

Siehe auch:
<application>
<activity>
eingeführt in:
API-Level 1