Esta página descreve como liberar um wake lock mantido pelo seu app. É importante liberar um wake lock assim que o app terminar de usá-lo para evitar o esgotamento da bateria.
Liberar um wake lock ativo
Para liberar um wake lock ativo, chame o método release()
dele. Isso libera sua reivindicação para a CPU.
Por exemplo, o código a seguir adquire um wake lock, faz algum trabalho e libera o wake lock:
Kotlin
@Throws(MyException::class) fun doSomethingAndRelease() { wakeLock.apply { try { acquire(WAKELOCK_TIMEOUT) doTheWork() } finally { release() } } }
Java
void doSomethingAndRelease() throws MyException { try { wakeLock.acquire(WAKELOCK_TIMEOUT); doTheWork(); } finally { wakeLock.release(); } }
Libere os wake locks assim que eles não forem mais necessários. Por exemplo, se você usa um wake lock para permitir que uma tarefa em segundo plano seja concluída, libere o bloqueio assim que a tarefa terminar.
Pontos principais sobre esse código
Neste exemplo, o método
doTheWork()
pode gerar uma exceção. Por isso, o código libera o wake lock no blocofinally
para garantir que ele seja liberado, mesmo que uma exceção seja gerada. É muito importante garantir que todos os bloqueios de despertar definidos sejam liberados. Portanto, verifique todos os caminhos de código possíveis para garantir que o bloqueio de despertar não seja deixado ativo em nenhum deles.O ideal é adquirir o bloqueio de despertar com
WakeLock.acquire(long timeout)
, que libera automaticamente o bloqueio de despertar após o período de tempo limite especificado. No entanto, libere o wake lock explicitamente quando não precisar mais dele para não mantê-lo por mais tempo do que o necessário.