Wakelock freigeben

Auf dieser Seite wird beschrieben, wie Sie eine von Ihrer App gehaltene Wakelock freigeben. Es ist wichtig, eine Wakelock so schnell wie möglich freizugeben, nachdem Ihre App sie nicht mehr benötigt, um den Akku nicht zu entladen.

Aktive Wakelock-Sperre aufheben

Wenn Sie eine aktive Aktivierungssperre aufheben möchten, rufen Sie die Methode release() auf. Dadurch wird Ihr Anspruch auf die CPU freigegeben.

Im folgenden Code wird beispielsweise eine Wake-Lock-Ressource erworben, eine Aufgabe ausgeführt und die Wake-Lock-Ressource dann freigegeben:

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

Lassen Sie Wakelocks sofort los, sobald sie nicht mehr benötigt werden. Wenn Sie beispielsweise ein Wakelock verwenden, um einen Hintergrund-Task abzuschließen, müssen Sie die Sperre aufheben, sobald die Aufgabe abgeschlossen ist.

Wichtige Punkte zu diesem Code

In diesem Beispiel kann die Methode doTheWork() eine Ausnahme auslösen. Aus diesem Grund hebt der Code die Sperre im finally-Block auf, um sicherzustellen, dass die Sperre aufgehoben wird, unabhängig davon, ob eine Ausnahme ausgelöst wird oder nicht. Es ist sehr wichtig, dass jede von Ihnen festgelegte Wakelock freigegeben wird. Sie müssen also jeden möglichen Codepfad prüfen, um sicherzustellen, dass die Wakelock an keinem davon aktiv bleibt.

Siehe auch