wake lock 해제
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
이 페이지에서는 앱에서 보유한 절전 모드 해제 기능을 해제하는 방법을 설명합니다. 배터리 소모를 피하기 위해 앱이 종료되자마자 이 메서드를 사용하여 절전 모드 해제 기능을 해제하는 것이 중요합니다.
활성 wake lock 해제
활성 상태의 Wake lock을 해제하려면 release()
메서드를 호출합니다. 이렇게 하면 CPU 소유권 주장이 취소됩니다.
예를 들어 다음 코드는 절전 모드 해제 대기열을 획득하고 작업을 실행한 후 절전 모드 해제 대기열을 해제합니다.
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을 해제합니다. 설정한 모든 절전 모드 해제 잠금이 해제되었는지 확인하는 것이 매우 중요하므로 가능한 모든 코드 경로를 확인하여 절전 모드 해제 잠금이 활성 상태로 남아 있지 않도록 해야 합니다.
참고 항목
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-08-30(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-30(UTC)"],[],[],null,["This page describes how to release a wake lock held by your app.\nIt's important to release a wake lock as soon as your app is\nfinished using it to avoid draining the battery.\n\nRelease an active wake lock\n\nTo release an active wake lock, call its [`release()`](/reference/android/os/PowerManager.WakeLock#release()) method. Doing so\nreleases your claim to the CPU.\n\nFor example, the following code [acquires a wake lock](/develop/background-work/background-tasks/awake/wakelock/set),\ndoes some work, then releases the wake lock:\n\n\nKotlin \n\n```kotlin\n@Throws(MyException::class)\nfun doSomethingAndRelease() {\n wakeLock.apply {\n try {\n acquire()\n doTheWork()\n } finally {\n release()\n }\n }\n}https://github.com/android/snippets/blob/f95ab59fad80aeaf5d6a90bab8a01a126f20f44e/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt#L42-L52\n```\n\nJava \n\n```java\nvoid doSomethingAndRelease() throws MyException {\n try {\n wakeLock.acquire();\n doTheWork();\n } finally {\n wakeLock.release();\n }\n}https://github.com/android/snippets/blob/f95ab59fad80aeaf5d6a90bab8a01a126f20f44e/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java#L27-L34\n```\n\n\u003cbr /\u003e\n\nMake sure to release wake locks as soon as they are no longer needed. For\nexample, if you use a wake lock to allow a background task to finish, make sure\nto release the lock as soon as the task finishes.\n\nKey points about this code\n\nIn this example, the method `doTheWork()` might throw an exception. For this\nreason, the code releases the wake lock in the `finally` block, to make sure\nthe wake lock is released whether or not an exception is thrown. It's very\nimportant to make sure every wake lock you set is released, so you need to\ncheck every possible code path to make sure the wake lock isn't left active\non any of them.\n\nSee also\n\n- [Set a wake lock](/develop/background-work/background-tasks/awake/wakelock/set)"]]