Se você precisar manter um dispositivo em execução para concluir algum trabalho antes que
ele entre no estado de suspensão, use um recurso de serviço do sistema
PowerManager
chamado wake locks. Os wake locks permitem que o app controle o
estado de energia do dispositivo.
Definir um bloqueio de ativação
Para usar um wake lock, a primeira etapa é adicionar a
permissão WAKE_LOCK
ao
arquivo de manifesto do seu app:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Se o app inclui um broadcast receiver que usa um serviço para fazer algum trabalho, veja como definir um wake lock diretamente:
Kotlin
val wakeLock: PowerManager.WakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag").apply { acquire() } }
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag"); wakeLock.acquire();
Liberar um wake lock
Para liberar o wake lock, chame wakelock.release()
. Isso libera sua
reivindicação para a CPU. É importante liberar um wake lock assim que o app terminar de usá-lo para evitar o esgotamento da bateria.