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 oder nicht.
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 auf 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 jeweiligen Laufzeitkontingente einhalten. Dazu gehören Jobs, die direkt mit
JobSchedulergeplant werden, sowie Jobs, die von anderen Bibliotheken wie WorkManager oderDownloadManagererstellt werden.Wenn Sie Daten als Reaktion auf eine Nutzeraktion übertragen möchten, sollten 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 Zeitüberschreitungsverhalten von Diensten im Vordergrund beschrieben. Ähnliche Einschränkungen gelten für den (in Android 15 neuen) Dienst im Vordergrund vom TypmediaProcessing. BOOT_COMPLETED-Dienste im Vordergrund dürfen bestimmte Dienste im Vordergrund nicht mehr starten.- Apps mit der Berechtigung
SYSTEM_ALERT_WINDOWdürfen Dienste im Vordergrund nur dann aus dem Hintergrund starten, wenn sie derzeit ein sichtbares Overlay-Fenster haben oder wenn sie eine der anderen Ausnahmen von den Einschränkungen für den Start im Hintergrund erfüllen. Zuvor war die Ausnahme für diese Apps weiter gefasst.
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 mit ihren Diensttypen deklarieren.
- Apps müssen den entsprechenden Berechtigungstyp für die Art der Arbeit anfordern, die der Dienst im Vordergrund ausführt. Jedem Typ von Dienst im Vordergrund entspricht ein Berechtigungstyp. Wenn eine App beispielsweise einen Dienst im Vordergrund startet, der die Kamera verwendet, müssen Sie sowohl die Berechtigung
FOREGROUND_SERVICEals auch die BerechtigungFOREGROUND_SERVICE_CAMERAanfordern. Wenn eine App auf API-Level 34 oder höher ausgerichtet ist und nicht die entsprechende spezifische Berechtigung 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 keine Dienste im Vordergrund starten, während die App im Hintergrund ausgeführt wird. 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 aus dem 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 Diensttyp
camerabzw.microphonedeklarieren.
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 Berechtigung FOREGROUND_SERVICE 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 Berechtigung FOREGROUND_SERVICE anzufordern, löst das System eine SecurityException aus.