На этой странице рассказывается, как освободить запрет блокировки, установленный вашим приложением. Важно освободить запрет блокировки, как только ваше приложение закончит его использовать, чтобы не допустить разрядки батареи.
Как отключить активный запрет блокировки
Чтобы снять активную блокировку пробуждения, вызовите ее метод release(). Это позволит освободить ресурсы процессора.
Например, следующий код получает блокировку пробуждения, выполняет некоторые действия, а затем снимает блокировку:
Kotlin
@Throws(MyException::class) fun doSomethingAndRelease() { wakeLock.apply { try { acquire(WAKELOCK_TIMEOUT) doTheWork() } finally { release() } } }
Java
void doSomethingAndRelease() throws MyException { try { wakeLock.acquire(WAKELOCK_TIMEOUT); doTheWork(); } finally { wakeLock.release(); } }
Освобождайте блокировки пробуждения, как только они перестанут быть нужны. Например, если вы используете блокировку пробуждения, чтобы фоновая задача могла завершиться, обязательно снимите блокировку, как только задача будет выполнена.
Важная информация об этом коде
В этом примере метод
doTheWork()может вызвать исключение. Поэтому код освобождает блокировку пробуждения в блокеfinally, чтобы она была освобождена независимо от того, было ли выброшено исключение. Очень важно убедиться, что каждый установленный вами блокиратор пробуждения освобождается. Для этого нужно проверить все возможные пути выполнения кода, чтобы блокиратор не оставался активным ни на одном из них.Лучше всего получать блокировку пробуждения с помощью
WakeLock.acquire(long timeout), которая автоматически освобождает блокировку пробуждения после указанного периода времени ожидания. Однако, когда запрет блокировки больше не нужен, его следует явно снять, чтобы он не удерживался дольше необходимого.