Wenn ein Gerät laufen bleiben muss, damit Sie eine Aufgabe erledigen können, bevor es in den Ruhemodus wechselt, können Sie die PowerManager
-Systemdienstfunktion Wakelocks verwenden. Mit Wakelocks kann Ihre App den Betriebsstatus des Geräts steuern.
Aufwecksperre festlegen
Wenn Sie einen Wakelock verwenden möchten, müssen Sie zuerst die Berechtigung WAKE_LOCK
in die Manifestdatei Ihrer Anwendung einfügen:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Wenn Ihre App einen Broadcast-Empfänger enthält, der einen Dienst für eine bestimmte Aufgabe verwendet, können Sie eine Wakelock direkt so festlegen:
Kotlin
val wakeLock: PowerManager.WakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag").apply { acquire() } }
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag"); wakeLock.acquire();
Wakelock aufheben
Wenn Sie die Sperre aufheben möchten, drücken Sie wakelock.release()
. Dadurch wird Ihr Anspruch auf die CPU freigegeben. Es ist wichtig, eine Wakelock so schnell wie möglich wieder freizugeben, wenn Ihre App sie nicht mehr benötigt, um den Akku nicht zu entladen.