На этой странице описано, как снять блокировку пробуждения, удерживаемую вашим приложением. Важно снимать блокировку пробуждения сразу после завершения ее использования приложением, чтобы не разрядить батарею.
Снимите активную блокировку пробуждения
Чтобы снять активную блокировку пробуждения, вызовите его метод 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
, чтобы гарантировать, что блокировка пробуждения будет снята независимо от того, будет ли выдано исключение. Очень важно убедиться, что каждая установленная вами блокировка пробуждения снята, поэтому вам необходимо проверить все возможные пути кода, чтобы убедиться, что блокировка пробуждения не остается активной ни на одном из них.