Wakelock freigeben

Auf dieser Seite wird beschrieben, wie Sie einen von Ihrer App gehaltenen Wake Lock freigeben. Es ist wichtig, einen Wake Lock freizugeben, sobald Ihre App ihn nicht mehr benötigt, um zu vermeiden, dass der Akku entladen wird.

Aktiven Wakelock freigeben

Rufen Sie die Methode release() auf, um eine aktive Wake Lock freizugeben. Dadurch wird der Anspruch auf die CPU freigegeben.

Im folgenden Code wird beispielsweise ein Wake Lock abgerufen, es werden einige Aufgaben ausgeführt und dann wird das Wake Lock wieder freigegeben:

Kotlin

@Throws(MyException::class)
fun doSomethingAndRelease() {
    wakeLock.apply {
        try {
            acquire(WAKELOCK_TIMEOUT)
            doTheWork()
        } finally {
            release()
        }
    }
}

Java

void doSomethingAndRelease() throws MyException {
    try {
        wakeLock.acquire(WAKELOCK_TIMEOUT);
        doTheWork();
    } finally {
        wakeLock.release();
    }
}

Geben Sie Wake Locks frei, sobald sie nicht mehr benötigt werden. Wenn Sie beispielsweise einen Wakelock verwenden, damit eine Hintergrundaufgabe abgeschlossen werden kann, müssen Sie den Lock freigeben, sobald die Aufgabe abgeschlossen ist.

Wichtige Punkte zu diesem Code

  • In diesem Beispiel kann die Methode doTheWork() eine Ausnahme auslösen. Aus diesem Grund wird die Wake Lock im finally-Block freigegeben, um sicherzustellen, dass sie unabhängig davon freigegeben wird, ob eine Ausnahme ausgelöst wird. Es ist sehr wichtig, dass jeder von Ihnen festgelegte Wake Lock freigegeben wird. Sie müssen also jeden möglichen Codepfad prüfen, um sicherzustellen, dass der Wake Lock auf keinem von ihnen aktiv bleibt.

  • Am besten rufen Sie den Wake Lock mit WakeLock.acquire(long timeout) ab, da der Wake Lock nach dem angegebenen Zeitlimit automatisch freigegeben wird. Sie sollten das Wake Lock jedoch weiterhin explizit freigeben, wenn Sie es nicht mehr benötigen, damit es nicht länger als nötig gehalten wird.

Siehe auch