Jeśli chcesz, aby urządzenie działało, aby wykonać jakąś pracę, zanim przejdzie w stan zawieszenia, możesz użyć funkcji systemu PowerManager
o nazwie blokada wybudzania. Blokady aktywacji umożliwiają aplikacji kontrolowanie stanu zasilania urządzenia.
Ustawianie blokady aktywacji
Aby użyć blokady aktywacji, najpierw dodaj uprawnienie WAKE_LOCK
do pliku manifestu aplikacji:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Jeśli Twoja aplikacja zawiera odbiornik, który do wykonywania niektórych zadań korzysta z usługi, możesz bezpośrednio ustawić blokadę aktywacji w ten sposób:
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();
Zwolnij blokadę wybudzenia
Aby zwolnić blokadę aktywacji, zadzwoń pod numer wakelock.release()
. Spowoduje to przekazanie Twojego roszczenia do CPU. Aby uniknąć rozładowywania się baterii, ważne jest, aby odblokować urządzenie zaraz po zakończeniu korzystania z Wake Lock.