Rilasciare un wakelock

Questa pagina descrive come rilasciare un wake lock mantenuto dalla tua app. È importante rilasciare un wake lock non appena la tua app ha finito di utilizzarlo per evitare di scaricare la batteria.

Rilasciare un wakelock attivo

Per rilasciare un wake lock attivo, chiama il metodo release(). In questo modo la richiesta viene rilasciata alla CPU.

Ad esempio, il seguente codice acquisisce un wake lock, esegue alcune operazioni e poi rilascia il 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();
    }
}

Assicurati di rilasciare i wake lock non appena non sono più necessari. Ad esempio, se utilizzi un wakelock per consentire il completamento di un'attività in background, assicurati di rilasciarlo non appena l'attività termina.

Punti chiave di questo codice

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

Vedi anche