Liberar um wake lock

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(). 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()
            doTheWork()
        } finally {
            release()
        }
    }
}

Java

void doSomethingAndRelease() throws MyException {
    try {
        wakeLock.acquire();
        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 bloco finally 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.

Veja também