ปล่อย Wake Lock
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
หน้านี้อธิบายวิธีปล่อย 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()
}
}
}
Java
void doSomethingAndRelease() throws MyException {
try {
wakeLock.acquire();
doTheWork();
} finally {
wakeLock.release();
}
}
อย่าลืมปล่อยการล็อกการปลุกทันทีที่ไม่มีความจำเป็นต้องใช้แล้ว ตัวอย่างเช่น หากคุณใช้ Wake Lock เพื่ออนุญาตให้งานในเบื้องหลังเสร็จสมบูรณ์ ให้ตรวจสอบว่าได้ปลดล็อกทันทีที่งานเสร็จสิ้น
ประเด็นสำคัญเกี่ยวกับรหัสนี้
ในตัวอย่างนี้ เมธอด doTheWork()
อาจส่งกลับข้อยกเว้น ด้วยเหตุนี้ โค้ดจึงปล่อย Wake Lock ในบล็อก finally
เพื่อให้แน่ใจว่า Wake Lock จะได้รับการปล่อยไม่ว่าจะมีการขว้างข้อยกเว้นหรือไม่ก็ตาม คุณต้องตรวจสอบว่าได้ปล่อย Wake Lock ทุกรายการที่ตั้งค่าไว้แล้ว
โดยการตรวจสอบเส้นทางโค้ดที่เป็นไปได้ทั้งหมดเพื่อให้แน่ใจว่า Wake Lock ไม่ได้เปิดใช้งานอยู่
ในเส้นทางใดเส้นทางหนึ่ง
ดูเพิ่มเติม
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-08-24 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-24 UTC"],[],[],null,["# Release a wake lock\n\nThis 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---------------------------\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\n### Kotlin\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/dd30aee903e8c247786c064faab1a9ca8d10b46e/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt#L42-L52\n```\n\n### Java\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/dd30aee903e8c247786c064faab1a9ca8d10b46e/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\n### Key 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\n- [Set a wake lock](/develop/background-work/background-tasks/awake/wakelock/set)"]]