Sie können einen 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:
- Rufen Sie - PowerManager.newWakeLock()auf, um ein 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.
- 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-Empfänger 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(POWER_SERVICE) as PowerManager).run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply { acquire(WAKELOCK_TIMEOUT) } }
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag"); wakeLock.acquire(WAKELOCK_TIMEOUT);
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 Namen des Pakets, der Klasse oder der Methode als Teil des Wake-Lock-Tags anzugeben. So lässt sich das Wake Lock im Quellcode leichter finden, falls ein Fehler auftritt. Weitere Informationen finden Sie unter Wake Lock richtig benennen. 
- WakeLock.acquire(long)wird ein Zeitlimitwert in Millisekunden übergeben. Das System gibt den Wake Lock nach dieser Zeit frei, wenn Sie ihn nicht bereits freigegeben haben.
