Wake locks parciais travados

Wake locks parciais são um mecanismo da API PowerManager que possibilita que os desenvolvedores mantenham a CPU em funcionamento após a tela de um dispositivo ser desativada, seja devido ao tempo limite do sistema ou porque o usuário pressionou o botão liga/desliga. Seu app recebe um wake lock parcial ao chamar acquire() com a flag PARTIAL_WAKE_LOCK ou ao usar outras APIs que recebem wake locks. Um wake lock parcial fica travado se for retido por muito tempo enquanto o app está sendo executado em segundo plano. Ou seja, quando nenhuma parte do app está visível para o usuário. Essa condição consome a bateria do dispositivo porque impede que ele entre em estados de baixo consumo de energia. Os wake locks parciais só devem ser usados quando for preciso e liberados assim que não forem mais necessários.

Caso seu app tenha um wake lock parcial travado, você pode usar as orientações nesta página para diagnosticar e corrigir o problema.

Detectar o problema

Nem sempre você sabe que os wake locks parciais do seu app estão travados. Se você já publicou o app, o recurso Android vitals pode ajudar a identificar o problema.

Android vitals

O recurso Android vitals pode ajudar a melhorar a performance do app alertando você, pelo Play Console, quando o app apresentar wake locks parciais travados. O Android vitals informa que há wake locks parciais travados quando ocorre pelo menos um wake lock parcial com duração de uma hora em segundo plano, em um período de 24 horas.

A duração da bateria mostrada é uma estimativa com base em informações de todos os usuários medidos do app. Parar informações sobre como o Google Play coleta dados do Android vitals, consulte a documentação do Play Console.

Depois de identificar wake locks parciais travados no app, a próxima etapa é resolver o problema.

Corrigir falha

Como os wake locks podem descarregar a bateria do dispositivo, não use esse recurso se houver uma alternativa. A documentação Escolher a API certa para manter o dispositivo ativo pode ajudar você a encontrar a melhor solução para seu app.

Se você precisar usar um wake lock, siga as práticas recomendadas para garantir que eles não prejudiquem a eficiência do dispositivo. Em particular, verifique se todos os dispositivos adquiridos foram liberados e libere o bloqueio o mais rápido possível.

Depois de corrigir o problema no código, verifique as correções usando ferramentas locais de depuração de wake lock.

Veja também