Rilasciare un wakelock

Questa pagina descrive come rilasciare un blocco di attivazione trattenuto dalla tua app. È importante rilasciare un blocco di attivazione non appena la tua app lo ha usato per evitare di scaricare la batteria.

Rilasciare un blocco di attivazione attivo

Per rilasciare un blocco sveglia attivo, chiama il relativo metodo release(). In questo modo, la tua rivendicazione viene inoltrata alla CPU.

Ad esempio, il seguente codice acquisisce un blocco di attivazione, svolge un'operazione e poi rilascia il blocco di attivazione:

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();
    }
}

Assicurati di rilasciare i blocchi di riattivazione non appena non sono più necessari. Ad esempio, se utilizzi un blocco di attivazione per consentire il completamento di un'attività in background, assicurati di rilasciare il blocco non appena l'attività è completata.

Punti chiave di questo codice

In questo esempio, il metodo doTheWork() potrebbe generare un'eccezione. Per questo motivo, il codice rilascia il blocco di riattivazione nel blocco finally per assicurarsi che venga rilasciato indipendentemente dal fatto che venga lanciata un'eccezione o meno. È molto importante assicurarsi che ogni blocco di attivazione impostato venga rilasciato, quindi devi controllare ogni possibile percorso del codice per assicurarti che il blocco di attivazione non venga lasciato attivo su nessuno di questi.

Vedi anche