- 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>
Elementicon
-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>
Elementlabel
-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()
oderstopService()
erhält diese Berechtigung nicht, funktioniert die Methode nichtIntent
-Objekt wird nicht an den Dienst gesendet.Wenn dieses Attribut nicht festgelegt ist, wird die vom
<application>
Elementpermission
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>
Elementprocess
unterschiedliche Werte für alle Komponenten. Eine Komponente kann jedoch den Standardwert mit einem eigenenprocess
-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
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2024-08-22 (UTC).
[null,null,["Zuletzt aktualisiert: 2024-08-22 (UTC)."],[],[]]