이 페이지에서는 앱에서 보유한 wake lock을 해제하는 방법을 설명합니다. 배터리 소모를 피하기 위해 앱이 종료되자마자 wake lock을 해제하는 것이 중요합니다.
활성 Wake lock 해제
활성 상태의 Wake Lock을 해제하려면 release()
메서드를 호출합니다. 이렇게 하면 CPU에 대한 소유권 주장이 취소됩니다.
예를 들어 다음 코드는 wake lock을 획득하고 작업을 실행한 후 wake lock을 해제합니다.
Kotlin
@Throws(MyException::class)
fun doSomethingAndRelease() {
wakeLock.apply {
try {
acquire()
doTheWork()
} finally {
release()
}
}
}
자바
void doSomethingAndRelease() throws MyException {
try {
wakeLock.acquire();
doTheWork();
} finally {
wakeLock.release();
}
}
wake lock이 더 이상 필요하지 않으면 해제해야 합니다. 예를 들어 wake lock을 사용하여 백그라운드 작업이 완료되도록 하는 경우 작업이 완료되는 즉시 잠금을 해제해야 합니다.
이 코드의 핵심 사항
이 예시에서 doTheWork()
메서드가 예외를 발생시킬 수 있습니다. 따라서 코드는 예외가 발생했는지 여부와 관계없이 wake lock이 해제되도록 finally
블록에서 wake lock을 해제합니다. 설정된 모든 wake lock이 해제되는지 확인하는 것이 매우 중요하므로 가능한 모든 코드 경로를 확인하여 wake lock이 어느 것에서도 활성 상태로 남아 있지 않은지 확인해야 합니다.