Uso excessivo da rede móvel em segundo plano

Quando um app se conecta à rede móvel em segundo plano, ele ativa a CPU e liga o rádio. Fazer isso repetidamente pode esgotar a bateria de um dispositivo. Um app é considerado em execução em segundo plano se está no estado PROCESS_STATE_BACKGROUND ou PROCESS_STATE_CACHED.

Esta página explica como determinar o motivo pelo qual seu app usa excessivamente a rede móvel durante a execução em segundo plano e o que fazer a respeito disso.

Detectar o problema

Nem sempre você sabe que seu app está fazendo uso desordenado da rede durante a execução em segundo plano. Se você já tiver publicado seu app, o Android vitals poderá informá-lo sobre o problema para corrigi-lo.

Android vitals

O Android vitals pode ajudar a melhorar o desempenho do seu app alertando você, por meio do Play Console, quando o app estiver fazendo busca excessiva por Wi-Fi em segundo plano. O Android vitals considera excessivo o uso de rede em segundo plano quando um app envia e recebe um total combinado de 50 MB por hora quando em execução em segundo plano em 0,10% da duração da bateria.

A duração da bateria se refere ao intervalo entre duas cargas completas da bateria. Para ver informações sobre como o Google Play coleta dados do Android vitals, consulte a documentação do Play Console.

Investigar o comportamento de uso da rede móvel

Ferramentas como o Battery Historian podem ajudar você a ter mais informações sobre o uso da rede móvel do seu app. O Battery Historian fornece uma visualização do uso do rádio móvel em cada app, o que pode ajudar você a ter uma ideia mais clara do que está acontecendo com seu app. Para mais informações sobre o Battery Historian, consulte Como analisar o uso de energia com o Battery Historian. Ao investigar o comportamento de uso da rede móvel do seu app, observe especificamente a linha Mobile network use.

Para mais informações sobre os mecanismos de uso do Battery Historian, consulte o Tutorial sobre o Batterystats e o Battery Historian.

Reduzir o uso da rede móvel

O uso da rede móvel pode ocorrer porque o app está executando sincronizações. Para mais informações sobre como reduzir as sincronizações e o uso da rede, por consequência, consulte Sincronizações excessivas em segundo plano.

Você também pode mover o uso da rede móvel do seu app para o primeiro plano, alertar o usuário sobre o andamento de um download e fornecer a ele controles para pausar ou interromper o download. Para fazer isso, chame o DownloadManager e configure setNotificationVisibility(int) conforme apropriado.