释放唤醒锁定

本页介绍了如何释放应用持有的唤醒锁定。请务必在应用结束对唤醒锁定的使用后立即将其释放,以避免消耗电池电量。

释放有效的唤醒锁定

如需释放有效的唤醒锁定,请调用其 release() 方法。这样做会释放您对 CPU 的声明。

例如,以下代码获取唤醒锁定、执行一些工作,然后释放唤醒锁定:

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) 获取唤醒锁定,该方法会在指定的超时时间段过后自动释放唤醒锁定。不过,当您不再需要唤醒锁时,仍应明确释放它,以免唤醒锁的持有时间过长。

另请参阅