- 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" android:stopWithTask=["true" | "false"]> ... </service>
- Enthalten in:
<application>- kann Folgendes enthalten:
<intent-filter><meta-data><property>- Beschreibung:
- : Deklariert einen Dienst, eine
Service-Unterklasse, als eine der Komponenten der Anwendung. Im Gegensatz zu Aktivitäten haben Dienste keine visuelle Benutzeroberfläche. Sie werden verwendet, um Hintergrundvorgänge mit langer Ausführungszeit oder eine umfangreiche Kommunikations-API zu implementieren, die von anderen Anwendungen aufgerufen werden kann.Alle Dienste müssen in der Manifestdatei durch
<service>-Elemente dargestellt werden. Alle, die dort nicht deklariert sind, werden vom System nicht erkannt und nie ausgeführt.Hinweis:Unter Android 8.0 (API-Level 26) und höher schränkt das System ein, was Ihre App im Hintergrund tun kann. Weitere Informationen finden Sie in den Anleitungen zu Einschränkungen für die Ausführung im Hintergrund und Einschränkungen für die Standortermittlung im Hintergrund.
- Attribute:
android:description- Ein für Nutzer lesbarer String, der den Dienst beschreibt. Die Beschreibung wird als Verweis auf eine String-Ressource festgelegt, damit sie wie andere Strings in der Benutzeroberfläche lokalisiert werden kann.
android:directBootAwareOb der Dienst Direct-Boot-fähig ist, d. h., ob er ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.
Hinweis : Während des Direktstarts kann ein Dienst in Ihrer Anwendung nur auf die Daten zugreifen, die im gerätegeschützten Speicher gespeichert sind.
Der Standardwert ist
"false".android:enabled- Gibt an, ob der Dienst vom System instanziiert werden kann.
"true", wenn das möglich ist, und"false", wenn nicht. Der Standardwert ist"true".Das
<application>-Element hat ein eigenesenabled-Attribut, das für alle Anwendungskomponenten, einschließlich Dienste, gilt. Die Attribute<application>und<service>müssen beide"true"sein, was standardmäßig der Fall ist, damit der Dienst aktiviert werden kann. Wenn einer der beiden Werte"false"ist, wird der Dienst deaktiviert und kann nicht instanziiert werden. android:exported- Ob Komponenten anderer Anwendungen den Dienst aufrufen oder mit ihm interagieren können.
"true", wenn sie das können, und"false", wenn nicht. Wenn der Wert"false"ist, können nur Komponenten derselben Anwendung oder Anwendungen mit derselben Nutzer-ID den Dienst starten oder eine Verbindung zu ihm herstellen.Der Standardwert hängt davon ab, ob der Dienst Intent-Filter enthält. Wenn keine Filter vorhanden sind, kann sie nur durch Angabe des genauen Klassennamens aufgerufen werden. Das bedeutet, dass der Dienst nur für die interne Verwendung in der Anwendung vorgesehen ist, da andere den Klassennamen nicht kennen. In diesem Fall ist der Standardwert also
"false". Andererseits impliziert das Vorhandensein von mindestens einem Filter, dass der Dienst für die externe Nutzung vorgesehen ist. Der Standardwert ist also"true".Dieses Attribut ist nicht die einzige Möglichkeit, die Sichtbarkeit eines Dienstes für andere Anwendungen einzuschränken. Sie können auch eine Berechtigung verwenden, um die externen Einheiten zu beschränken, die mit dem Dienst interagieren können. Weitere Informationen finden Sie unter dem Attribut
permission. android:foregroundServiceTypeGibt an, dass der Dienst ein Dienst im Vordergrund ist, der einen bestimmten Anwendungsfall erfüllt. Ein Diensttyp im Vordergrund von
"location"gibt beispielsweise an, dass eine App den aktuellen Standort des Geräts abruft, in der Regel, um eine vom Nutzer initiierte Aktion im Zusammenhang mit dem Gerätestandort fortzusetzen.Sie können einem bestimmten Dienst mehrere Typen für Dienste im Vordergrund zuweisen.
android:icon- Ein Symbol, das den Dienst repräsentiert. Dieses Attribut wird als Referenz auf eine zeichenfähige Ressource festgelegt, die die Bilddefinition enthält.
Wenn es nicht festgelegt ist, wird stattdessen das für die Anwendung als Ganzes angegebene Symbol verwendet. Weitere Informationen finden Sie im Attribut
icondes Elements<application>.Das Symbol des Dienstes, das entweder hier oder durch das
<application>-Element festgelegt wird, ist auch das Standardsymbol für alle Intent-Filter des Dienstes. Weitere Informationen finden Sie im Attributicondes Elements<intent-filter>. android:isolatedProcess- Wenn auf
"true"festgelegt, wird dieser Dienst in einem speziellen Prozess ausgeführt, der vom Rest des Systems isoliert ist und keine eigenen Berechtigungen hat. Die einzige Kommunikation mit dem Dienst erfolgt über die Service API, mit der er gebunden und gestartet wird. android:label- Ein für Nutzer lesbarer Name für den Dienst.
Wenn dieses Attribut nicht festgelegt ist, wird stattdessen das für die Anwendung als Ganzes festgelegte Label verwendet. Weitere Informationen finden Sie im Attribut
labeldes Elements<application>.Das Label des Dienstes, das entweder hier oder durch das Element
<application>festgelegt wird, ist auch das Standardlabel für alle Intent-Filter des Dienstes. Weitere Informationen finden Sie im Attributlabeldes Elements<intent-filter>.Das Label wird als Verweis auf eine String-Ressource festgelegt, damit es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Während der Entwicklung der Anwendung kann sie jedoch auch als Rohstring festgelegt werden.
android:name- Der Name der
Service-Unterklasse, die den Dienst implementiert. Dies ist ein vollständig qualifizierter Klassenname, z. B."com.example.project.RoomService". Wenn das erste Zeichen des Namens ein Punkt ist, z. B.".RoomService", wird es an den im<manifest>-Element angegebenen Paketnamen angehängt.Nachdem Sie Ihre Anwendung veröffentlicht haben, dürfen Sie diesen Namen nicht mehr ä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 Einheit benötigt, um den Dienst zu starten oder daran zu binden. Wenn einem Aufrufer von
startService(),bindService()oderstopService()diese Berechtigung nicht erteilt wird, funktioniert die Methode nicht und dasIntent-Objekt wird nicht an den Dienst gesendet.Wenn dieses Attribut nicht festgelegt ist, gilt der Berechtigungssatz, der durch das Attribut
permissiondes Elements<application>für den Dienst festgelegt wurde. Wenn keines der Attribute festgelegt ist, ist der Dienst nicht durch eine Berechtigung geschützt.Weitere Informationen zu Berechtigungen finden Sie im Abschnitt Berechtigungen in der Übersicht zum App-Manifest und in den Sicherheitsrichtlinien.
android:process- Der Name des Prozesses, in dem der Dienst ausgeführt wird. Normalerweise werden alle Komponenten einer Anwendung im Standardprozess ausgeführt, der für die Anwendung erstellt wurde. Er hat denselben Namen wie das Anwendungspaket. Mit dem Attribut
processdes Elements<application>kann ein anderer Standardwert für alle Komponenten festgelegt werden. Eine Komponente kann den Standardwert jedoch mit einem eigenenprocess-Attribut überschreiben, sodass Sie Ihre Anwendung auf mehrere Prozesse verteilen können.Wenn der Name, der diesem Attribut zugewiesen ist, mit einem Doppelpunkt (
:) beginnt, wird bei Bedarf ein neuer Prozess erstellt, der für die Anwendung privat ist, und der Dienst wird in diesem Prozess ausgeführt.Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird der Dienst in einem globalen Prozess mit diesem Namen ausgeführt, sofern er die entsprechende Berechtigung hat. Dadurch können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, was den Ressourcenverbrauch verringert.
android:stopWithTask- Wenn diese Option auf
"true"festgelegt ist, beendet das System den Dienst automatisch, wenn der Nutzer eine Aufgabe entfernt, die auf einer Aktivität basiert, die der App gehört. Der Standardwert ist"false".
- Siehe auch:
<application><activity>- Eingeführt in:
- API-Level 1
<Dienst>
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: 2026-07-01 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2026-07-01 (UTC)."],[],[]]