Déverrouiller un wakelock

Cette page explique comment libérer un wake lock détenu par votre application. Il est important de libérer un wake lock dès que votre application a fini de l'utiliser pour éviter d'épuiser la batterie.

Libérer un wakelock actif

Pour libérer un verrouillage d'activation actif, appelez sa méthode release(). Vous libérez ainsi votre réclamation sur le processeur.

Par exemple, le code suivant acquiert un wake lock, effectue une tâche, puis libère le 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();
    }
}

Veillez à libérer les wakelocks dès qu'ils ne sont plus nécessaires. Par exemple, si vous utilisez un wakelock pour qu'une tâche en arrière-plan se termine, veillez à ce qu'il soit libéré dès que la tâche est terminée.

Points clés concernant ce code

Dans cet exemple, la méthode doTheWork() peut renvoyer une exception. Pour cette raison, le code libère le verrouillage de réveil dans le bloc finally pour s'assurer qu'il est libéré, que des exceptions soient générées ou non. Il est très important de s'assurer que chaque verrouillage de réveil que vous définissez est libéré. Vous devez donc vérifier chaque chemin de code possible pour vous assurer que le verrouillage de réveil n'est pas laissé actif sur l'un d'eux.

Voir aussi