Limites da localização em segundo plano
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Em uma tentativa de reduzir o consumo de energia, o Android 8.0 (nível 26 da API) limita
a frequência com que um app pode recuperar a localização atual do usuário enquanto ele está
em execução em segundo plano. Nessas
condições, os apps só podem receber atualizações de local algumas vezes por hora.
Observação : essas limitações se aplicam a todos os apps usados em dispositivos
que executam o Android 8.0 (nível 26 da API) ou versões mais recentes, independentemente da versão
do SDK de destino do app.
Esse comportamento de busca de localização é muito importante se o app usa alertas em tempo real ou detecção de
movimentos enquanto é executado em segundo plano.
Comportamento do aplicativo em primeiro plano preservado
Se um app estiver em primeiro plano em um dispositivo que executa o Android 8.0 (nível 26 da API),
o comportamento de atualização do local será o mesmo do Android 7.1.1 (nível 25
da API) e versões anteriores.
Aviso:se o app buscar atualizações de localização quase em tempo real
por muito tempo, a duração da bateria do dispositivo poderá ser significativamente diminuída.
Aprimorar o comportamento de localização do app
Analise se é possível que os casos de uso do seu app quando executado em segundo plano funcionem bem se o app receber atualizações de localização com menos frequência. Se esse for o
caso, você pode buscar atualizações de localização mais frequentemente realizando uma das
seguintes ações:
- Levar o aplicativo a primeiro plano.
-
Inicie um serviço
em primeiro plano no app chamando
startForegroundService()
. Quando um serviço em primeiro plano está ativo, ele
aparece como uma notificação contínua na
área de
notificação.
Atenção:se o app iniciar um serviço em primeiro plano
enquanto estiver em segundo plano em um dispositivo com o Android 11 (nível 30 da API) ou
mais recente, ele não poderá acessar as informações de local, a menos que o
usuário tenha concedido a permissão
ACCESS_BACKGROUND_LOCATION
ao app. Para mais informações, consulte as orientações sobre as
restrições
de uso associadas aos serviços em primeiro plano.
-
Use elementos da API Geofencing, como
GeofencingClient
,
que é otimizado para minimizar o uso de bateria.
-
Use um listener passivo de localização, que pode receber atualizações de local mais rapidamente se houver apps em primeiro plano solicitando a localização com maior frequência.
Observação:se o app precisar acessar o Histórico de localização que
contém atualizações frequentes, use a versão em lote dos elementos da API Fused Location
Provider, como a interface
FusedLocationProviderApi
. Quando o app está sendo executado em segundo plano, essa API recebe a
localização do usuário com maior frequência do que a API sem lote. No entanto,
seu app ainda recebe atualizações em lote apenas algumas vezes por hora.
APIs afetadas
As mudanças no comportamento de busca de localização dos apps em segundo plano afetam as
seguintes APIs:
- Provedor
de localização combinada (FLP)
-
-
Se o app estiver sendo executado em segundo plano, o serviço do sistema de localização
vai computar um novo local para ele apenas algumas vezes por hora. Isso
acontece mesmo quando o app está solicitando atualizações de local mais frequentes.
No entanto, ao usar a
versão em lote do FLP, você tem acesso a um Histórico de localização mais frequente após o app receber uma atualização em lote,
o que também ocorre apenas algumas vezes por hora.
- Não há nenhuma mudança nas taxas de amostragem de localização em relação ao Android 7.1.1 (API de nível 25) caso o app esteja em primeiro plano.
- Geofencing
-
- Os apps em segundo plano podem receber eventos de transição de fronteira geográfica virtual com maior frequência do que as atualizações do Fused Location Provider.
- A capacidade de resposta média de um evento de fronteira geográfica virtual é de por volta de dois minutos.
- Medidas e mensagens de navegação do GNSS
-
- Location Manager
-
-
As atualizações de localização são fornecidas aos apps em segundo plano apenas algumas vezes
por hora.
Observação:se o app estiver em execução em um dispositivo com o
Google Play Services instalado, é altamente recomendável usar
o Fused
Location Provider (FLP).
- Wi-Fi Manager
-
O método
startScan()
realiza uma varredura completa em busca de apps em segundo plano apenas algumas vezes por hora. Se um
app em segundo plano chamar o método novamente pouco tempo depois, a
classe WifiManager
vai fornecer resultados em cache da
verificação anterior.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]