Wakelock einrichten

Sie können ein Wake Lock festlegen, um das Gerät vorübergehend aktiv zu halten.

Abhängigkeiten

Ihre App muss die Berechtigung WAKE_LOCK haben, um einen Wake Lock festzulegen. Fügen Sie die Berechtigung dem Manifest Ihrer App hinzu:

<uses-permission android:name="android.permission.WAKE_LOCK" />

Wake Lock erstellen und abrufen

So erhalten Sie einen Wake Lock:

  1. Rufen Sie PowerManager.newWakeLock() auf, um eine Wake Lock zu erstellen. Dadurch wird ein PowerManager.WakeLock-Objekt erstellt und konfiguriert, das Gerät wird aber nicht tatsächlich im aktiven Zustand gehalten.

  2. Wenn Sie das Gerät aktiv halten möchten, rufen Sie die Methode acquire() des Wake Lock-Objekts auf.

Wenn Ihre App beispielsweise einen Broadcast-Receiver enthält, der einen Dienst verwendet, um bestimmte Aufgaben auszuführen, können Sie mit diesem Code ein Wake Lock festlegen und abrufen:

Kotlin

val wakeLock: PowerManager.WakeLock =
    (getSystemService(Context.POWER_SERVICE) as PowerManager).run {
        newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply {
            acquire()
        }
    }

Java

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag");
wakeLock.acquire();

Wichtige Punkte zu diesem Code

Wenn der Code das Wake-Lock-Objekt erstellt, wird der Name der Klasse als Teil des Wake-Lock-Tags verwendet. Wir empfehlen, den Paket-, Klassen- oder Methodennamen als Teil des Wake-Lock-Tags anzugeben. So lässt sich das Wake Lock im Quellcode leichter finden, wenn ein Fehler auftritt. Weitere Informationen finden Sie unter Wake Lock richtig benennen.

Siehe auch