In der Dokumentation zu Diensten im Vordergrund wird das aktuelle Verhalten von Android-Diensten im Vordergrund beschrieben. Die Dokumentation enthält Best Practices für die meisten Apps, unabhängig davon, ob sie auf die neueste Android-Version ausgerichtet sind.
Auf dieser Seite werden einige der wichtigsten aktuellen Änderungen an Diensten im Vordergrund und die Auswirkungen auf Apps beschrieben, die nicht auf die neueste Version der Android-Plattform ausgerichtet sind. In vielen Fällen werden Best Practices, die für Apps mit niedrigeren API-Levels optional waren, für Apps mit höheren API-Levels obligatorisch.
Android 16 (API-Level 36)
Die folgenden Änderungen gelten für Apps, die unter Android 16 oder höher ausgeführt werden, unabhängig davon, auf welches API-Level sie ausgerichtet sind:
Hintergrundjobs, die von einem Dienst im Vordergrund gestartet werden, müssen jetzt die entsprechenden Laufzeitkontingente einhalten. Dazu gehören Jobs, die direkt mit
JobSchedulergeplant wurden, sowie Jobs, die von anderen Bibliotheken wie WorkManager oderDownloadManagererstellt wurden.Wenn Sie Daten als Reaktion auf eine Nutzeraktion übertragen möchten, können Sie einen vom Nutzer initiierten Datenübertragungsjob verwenden. Diese Jobs sind von den normalen Jobkontingenten ausgenommen.
Android 15 (API-Level 35)
Die folgenden Anforderungen gelten für Apps, die auf API-Level 35 oder höher ausgerichtet sind:
- Es gibt neue Einschränkungen für die Laufzeit eines
dataSync-Dienstes im Vordergrund. Diese Einschränkungen werden unter Timeout-Verhalten von Diensten im Vordergrund beschrieben. Ähnliche Einschränkungen gelten für den (in Android 15 neu eingeführten)mediaProcessingDiensttyp im Vordergrund. BOOT_COMPLETEDDienste im Vordergrund dürfen nicht mehr bestimmte Dienste im Vordergrund starten.- Apps mit der Berechtigung
SYSTEM_ALERT_WINDOWdürfen Dienste im Vordergrund nur dann im Hintergrund starten, wenn sie derzeit ein sichtbares Overlay-Fenster haben oder eine der anderen Ausnahmen von den Einschränkungen für den Start im Hintergrund erfüllen. Bisher war die Ausnahme für diese Apps umfassender.
Android 14 (API-Level 34)
Die folgenden Anforderungen gelten für Apps, die auf API-Level 34 oder höher ausgerichtet sind:
- Sie müssen alle Dienste im Vordergrund deklarieren mit ihren Dienst typen.
- Apps müssen den entsprechenden Berechtigungstyp für die Art der Arbeit anfordern, die der Dienst im Vordergrund ausführen soll. Für jeden Diensttyp im Vordergrund
gibt es einen entsprechenden Berechtigungstyp. Wenn eine App beispielsweise einen
Dienst im Vordergrund startet, der die Kamera verwendet, müssen Sie sowohl die
FOREGROUND_SERVICEals auch dieFOREGROUND_SERVICE_CAMERABerechtigungen anfordern. Wenn eine App auf API-Level 34 oder höher ausgerichtet ist und die entsprechende spezifische Berechtigung nicht anfordert, löst das System eineSecurityExceptionaus.
Android 12 (API-Level 31)
Die folgenden Anforderungen gelten für Apps, die auf API-Level 31 oder höher ausgerichtet sind:
- Apps dürfen Dienste im Vordergrund nicht starten, wenn sie im Hintergrund ausgeführt werden. Es gibt jedoch einige Ausnahmen. Weitere Informationen und Informationen zu den Ausnahmen von dieser Regel finden Sie unter Einschränkungen beim Starten eines Dienstes im Vordergrund im Hintergrund.
Android 11 (API-Level 30)
Die folgenden Anforderungen gelten für Apps, die auf API-Level 30 oder höher ausgerichtet sind:
- Wenn die Dienste im Vordergrund einer App die Kamera oder das Mikrofon verwenden, muss die App den Dienst mit dem
camerabzw.microphoneDiensttyp deklarieren.
Android 10 (API-Level 29)
Die folgenden Anforderungen gelten für Apps, die auf API-Level 29 oder höher ausgerichtet sind:
- Wenn die Dienste im Vordergrund einer App Standortinformationen verwenden, muss die App den Dienst mit dem Diensttyp
locationdeklarieren.
Android 9 (API-Level 28)
In Android 9 wird die
FOREGROUND_SERVICE Berechtigung eingeführt. Apps, die unter Android 9 ausgeführt werden und Dienste im Vordergrund verwenden, müssen diese Berechtigung haben.
Wenn eine App, die auf API-Level 28 oder höher ausgerichtet ist, versucht,
einen Dienst im Vordergrund zu erstellen, ohne die FOREGROUND_SERVICE
Berechtigung anzufordern, löst das System eine SecurityException aus.