Настройка блокировки пробуждения и управление ею,Настройка блокировки пробуждения и управление ею

Если вам необходимо поддерживать работу устройства, чтобы завершить некоторую работу до того, как оно перейдет в состояние ожидания, вы можете использовать функцию системной службы PowerManager , называемую блокировкой пробуждения . Блокировки пробуждения позволяют вашему приложению контролировать состояние питания устройства.

Установить блокировку пробуждения

Чтобы использовать блокировку пробуждения, первым делом нужно добавить разрешение WAKE_LOCK в файл манифеста вашего приложения:

<uses-permission android:name="android.permission.WAKE_LOCK" />

Если ваше приложение включает в себя приемник широковещательного вещания, который использует службу для выполнения некоторой работы, вот как вы можете напрямую установить блокировку пробуждения:

Котлин

val wakeLock: PowerManager.WakeLock =
        (getSystemService(Context.POWER_SERVICE) as PowerManager).run {
            newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag").apply {
                acquire()
            }
        }

Ява

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
        "MyApp::MyWakelockTag");
wakeLock.acquire();

Снимите блокировку пробуждения

Чтобы снять блокировку пробуждения, вызовите wakelock.release() . При этом ваши претензии к процессору будут сняты. Важно снимать блокировку пробуждения сразу после завершения ее использования приложением, чтобы не разрядить батарею.

См. также