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:
Rufen Sie
PowerManager.newWakeLock()
auf, um ein Wake Lock zu erstellen. Dadurch wird einPowerManager.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.