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

На этой странице описано, как снять блокировку сна, установленную приложением. Важно снять блокировку сна сразу после того, как приложение завершит работу, чтобы избежать разрядки аккумулятора.

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

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

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

Котлин

@Throws(MyException::class)
fun doSomethingAndRelease() {
    wakeLock.apply {
        try {
            acquire()
            doTheWork()
        } finally {
            release()
        }
    }
}

Ява

void doSomethingAndRelease() throws MyException {
    try {
        wakeLock.acquire();
        doTheWork();
    } finally {
        wakeLock.release();
    }
}

Обязательно снимайте блокировку пробуждения сразу же, как только она станет ненужной. Например, если вы используете блокировку пробуждения для завершения фоновой задачи, обязательно снимайте её сразу после её завершения.

Ключевые моменты этого кода

В этом примере метод doTheWork() может сгенерировать исключение. По этой причине код снимает блокировку пробуждения в блоке finally , чтобы гарантировать её снятие независимо от того, сгенерировано исключение или нет. Очень важно убедиться, что каждая установленная вами блокировка пробуждения снимается, поэтому необходимо проверить все возможные пути кода, чтобы убедиться, что блокировка пробуждения не остаётся активной ни в одном из них.

Смотрите также