Einschränkungen bei der Standortermittlung im Hintergrund
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Unter Android 8.0 (API-Ebene 26) wird der Energieverbrauch reduziert, indem die Häufigkeit begrenzt wird, mit der eine App den aktuellen Standort des Nutzers abrufen kann, während die App im Hintergrund ausgeführt wird. Unter diesen Bedingungen können Apps nur wenige Male pro Stunde Standortaktualisierungen erhalten.
Hinweis : Diese Einschränkungen gelten für alle Apps, die auf Geräten mit Android 8.0 (API-Level 26) oder höher verwendet werden, unabhängig von der SDK-Version der App.
Dieses Verhalten beim Abrufen des Standorts ist besonders wichtig, wenn Ihre App auf Echtzeitbenachrichtigungen oder Bewegungserkennung angewiesen ist, während sie im Hintergrund ausgeführt wird.
Verhalten von Apps im Vordergrund bleibt erhalten
Wenn sich eine App auf einem Gerät mit Android 8.0 (API-Ebene 26) im Vordergrund befindet, entspricht das Verhalten bei Standortaktualisierungen dem bei Android 7.1.1 (API-Ebene 25) und niedriger.
Warnung:Wenn Ihre App über einen längeren Zeitraum hinweg Standortaktualisierungen in nahezu Echtzeit abrufen lässt, verkürzt sich die Akkulaufzeit des Geräts erheblich.
Standortverhalten Ihrer App optimieren
Überlegen Sie, ob die Anwendungsfälle Ihrer App, die im Hintergrund ausgeführt werden, überhaupt nicht funktionieren, wenn Ihre App selten Standortaktualisierungen erhält. In diesem Fall können Sie Standortaktualisierungen häufiger abrufen. Gehen Sie dazu so vor:
- Bringen Sie Ihre App in den Vordergrund.
-
Starten Sie einen Dienst im Vordergrund in Ihrer App, indem Sie startForegroundService()
aufrufen. Wenn ein solcher Dienst im Vordergrund aktiv ist, wird er im Benachrichtigungsbereich als fortlaufende Benachrichtigung angezeigt.
Achtung:Wenn Ihre App einen Dienst im Vordergrund startet, während sie auf einem Gerät mit Android 11 (API-Level 30) oder höher im Hintergrund ausgeführt wird, kann sie nur dann auf Standortinformationen zugreifen, wenn der Nutzer der App die Berechtigung ACCESS_BACKGROUND_LOCATION
erteilt hat. Weitere Informationen finden Sie in der Anleitung zu den Einschränkungen für die Verwendung, die mit Diensten im Vordergrund verbunden sind.
-
Verwenden Sie Elemente der Geofencing API, z. B.
GeofencingClient
, die für eine minimale Stromnutzung optimiert sind.
-
Verwenden Sie einen passiven Standort-Listener, der möglicherweise schnellere Standortaktualisierungen erhält, wenn Apps im Vordergrund häufiger Standortaktualisierungen anfordern.
Hinweis:Wenn Ihre App Zugriff auf den Standortverlauf benötigt, der häufig aktualisiert wird, verwenden Sie die Batchversion der Fused Location Provider API-Elemente, z. B. die FusedLocationProviderApi
-Benutzeroberfläche. Wenn Ihre App im Hintergrund ausgeführt wird, erhält diese API den Standort des Nutzers häufiger als die nicht gruppierte API. Ihre App erhält jedoch weiterhin nur wenige Male pro Stunde Updates in Batches.
Betroffene APIs
Die Änderungen am Verhalten der Standortabfrage in Apps im Hintergrund wirken sich auf die folgenden APIs aus:
- Anbieter für kombinierte Standortbestimmung (Fused Location Provider, FLP)
-
-
Wenn Ihre App im Hintergrund ausgeführt wird, berechnet der Standortsystemdienst nur wenige Male pro Stunde einen neuen Standort für Ihre App. Das gilt auch, wenn Ihre App häufigere Standortaktualisierungen anfordert.
Wenn Sie jedoch die
Batchversion von FLP verwenden, haben Sie Zugriff auf einen häufigeren Standortverlauf, nachdem Ihre App ein Batch-Update erhalten hat. Das geschieht jedoch auch nur wenige Male pro Stunde.
- Wenn Ihre App im Vordergrund ausgeführt wird, ändert sich die Häufigkeit der Standortermittlung im Vergleich zu Android 7.1.1 (API-Ebene 25) nicht.
- Geofencing
-
- Hintergrund-Apps können Geofencing-Übergangsereignisse häufiger als Updates vom Anbieter für den kombinierten Standort erhalten.
- Die durchschnittliche Reaktionszeit für ein Geofencing-Ereignis liegt bei etwa zwei Minuten.
- GNSS-Messungen und GNSS-Navigationsnachrichten
-
- Wenn sich Ihre App im Hintergrund befindet, werden Callbacks, die für den Empfang von Ausgaben von
GnssMeasurement
und GnssNavigationMessage
registriert sind, nicht mehr ausgeführt.
- Standortmanager
-
-
Standortaktualisierungen werden für Apps im Hintergrund nur wenige Male pro Stunde bereitgestellt.
Hinweis:Wenn Ihre App auf einem Gerät ausgeführt wird, auf dem Google Play-Dienste installiert sind, sollten Sie stattdessen den Fused Location Provider (FLP) verwenden.
- WLAN-Manager
-
Bei der Methode
startScan()
wird nur wenige Male pro Stunde ein vollständiger Scan für Hintergrund-Apps durchgeführt. Wenn eine App im Hintergrund die Methode bald darauf noch einmal aufruft, stellt die WifiManager
-Klasse die im Cache gespeicherten Ergebnisse aus dem vorherigen Scan bereit.
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: 2025-07-27 (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: 2025-07-27 (UTC)."],[],[],null,["# Background Location Limits\n\nIn an effort to reduce power consumption, Android 8.0 (API level 26) limits\nhow frequently an app can retrieve the user's current location while the app is\n[running in the background](/guide/background). Under these\nconditions, apps can receive location updates only a few times each hour.\n\n**Note:** These limitations apply to all apps used on devices\nrunning Android 8.0 (API level 26) or higher, **regardless of an app's\ntarget SDK version**.\n\nThis location retrieval behavior is particularly\nimportant to keep in mind if your app relies on real-time alerts or motion\ndetection while running in the background.\n\nForeground app behavior is preserved\n------------------------------------\n\n\nIf an app is in the foreground on a device running Android 8.0 (API level 26),\nthe location update behavior is the same as on Android 7.1.1 (API level\n25) and lower.\n\n**Warning:** If your app retrieves near real-time location\nupdates over a long period of time, the device's battery life becomes\nsignificantly shorter.\n\nTuning your app's location behavior\n-----------------------------------\n\nConsider whether your app's use cases for running in the background cannot\nsucceed at all if your app receives infrequent location updates. If this is the\ncase, you can retrieve location updates more frequently by performing one of the\nfollowing actions:\n\n- Bring your app to the foreground.\n- Start a [foreground\n service](/guide/components/foreground-services) in your app by calling\n [startForegroundService()](/reference/android/content/Context#startForegroundService(android.content.Intent)). When such a foreground service is active, it\n appears as an ongoing notification in the\n [notification\n area](/guide/topics/ui/notifiers/notifications).\n\n **Caution:** If your app starts a foreground service\n while running in the background on a device that runs Android 11 (API\n level 30) or higher, your app cannot access location information unless the\n user has granted the\n [`ACCESS_BACKGROUND_LOCATION`](/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION)\n permission to your app. For more information, view the guidance about the\n [while-in-use\n restrictions](/guide/components/foreground-services#while-in-use-restrictions) that are associated with foreground services.\n- Use elements of the Geofencing API, such as the [`GeofencingClient`](https://developers.google.com/android/reference/com/google/android/gms/location/GeofencingClient), which are optimized for minimizing power use.\n- Use a passive location listener, which may receive faster location updates if there are foreground apps requesting location updates at a faster rate.\n\n**Note:** If your app needs access to location history that\ncontains time-frequent updates, use the batched version of the Fused Location\nProvider API elements, such as the\n[`FusedLocationProviderApi`](https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi)\ninterface. When your app is running in the background, this API receives the\nuser's location more frequently than the non-batched API. Keep in mind, however,\nthat your app still receives updates in batches only a few times each hour.\n\nAffected APIs\n-------------\n\n\nThe changes to location retrieval behavior in background apps affect the\nfollowing APIs:\n\n[Fused\nLocation Provider (FLP)](https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi)\n:\n - If your app is running in the background, the location system service\n computes a new location for your app only a few times each hour. This\n is the case even when your app is requesting more frequent location\n updates.\n\n By using the\n [batched version](https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest#setMaxWaitTime(long)) of FLP, however, you have access to more\n time-frequent location history after your app receives a batch update,\n which also occurs only a few times each hour.\n - If your app is running in the foreground, there is no change in location sampling rates compared to Android 7.1.1 (API level 25).\n\nGeofencing\n:\n - Background apps can receive geofencing transition events more frequently than updates from the Fused Location Provider.\n - The average responsiveness for a geofencing event is every couple of minutes or so.\n\nGNSS Measurements and GNSS Navigation Messages\n:\n - When your app is in the background, callbacks that are registered to receive outputs from [GnssMeasurement](/reference/android/location/GnssMeasurement) and [GnssNavigationMessage](/reference/android/location/GnssNavigationMessage) stop executing.\n\nLocation Manager\n:\n - Location updates are provided to background apps only a few times\n each hour.\n\n\n **Note:** If your app is running on a device with\n Google Play services installed, it is highly recommended that you use\n the [Fused\n Location Provider (FLP)](https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi) instead.\n\nWi-Fi Manager\n:\n The [startScan()](/reference/android/net/wifi/WifiManager#startScan()) method\n performs a full scan for background apps only a few times each hour. If a\n background app calls the method again soon afterward, the\n [WifiManager](/reference/android/net/wifi/WifiManager) class provides cached results from the\n previous scan."]]