Liberar um wake lock

Esta página descreve como liberar um wake lock mantido pelo 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 bloqueio de ativação, faz algum trabalho e libera o bloqueio de ativação:

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 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 a trava assim que a tarefa for concluída.

Pontos principais sobre esse código

Neste exemplo, o método doTheWork() pode gerar uma exceção. Por esse motivo, 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 wake locks definidos sejam liberados. Portanto, você precisa verificar todos os caminhos de código possíveis para garantir que o wake lock não seja deixado ativo em nenhum deles.

Veja também