Déverrouiller un wakelock

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

Libérer un wakelock actif

Pour libérer un verrouillage de réveil actif, appelez sa méthode release(). Cela libère votre revendication sur le processeur.

Par exemple, le code suivant acquiert un verrouillage de réveil, effectue une tâche, puis libère le verrouillage de réveil :

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

Assurez-vous de 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 à le libérer dès que la tâche est terminée.

Points clés concernant ce code

Dans cet exemple, la méthode doTheWork() peut générer une exception. Pour cette raison, le code libère le verrouillage de réveil dans le bloc finally, afin de s'assurer que le verrouillage de réveil est libéré, qu'une exception soit générée 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