Ustawianie blokad uśpienia i zarządzanie nimi

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.

Zobacz również