หน้านี้จะอธิบายวิธียกเลิกการล็อกจากการตื่นที่แอปของคุณถือครองอยู่ คุณควรยกเลิกการล็อกจากการตื่นทันทีที่แอปของคุณใช้งานเสร็จแล้วเพื่อไม่ให้แบตเตอรี่หมด
ปล่อย Wake Lock ที่ทำงานอยู่
หากต้องการยกเลิกการล็อกการปลุกที่ทำงานอยู่ ให้เรียกใช้เมธอด release()
ซึ่งจะเป็นการยกเลิกการอ้างสิทธิ์ของคุณใน CPU
ตัวอย่างเช่น โค้ดต่อไปนี้จะรับการล็อกการปลุก ทำงานบางอย่าง แล้วปล่อยการล็อกการปลุก
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()
อาจส่งข้อยกเว้น ด้วยเหตุนี้ โค้ดจึงยกเลิกการล็อกการปลุกในบล็อก finally
เพื่อให้แน่ใจว่ามีการยกเลิกการล็อกการปลุกไม่ว่าจะมีการยกเว้นหรือไม่ก็ตาม คุณจำเป็นต้องตรวจสอบว่าปลุกล็อกทุกรายการที่คุณตั้งไว้ถูกปล่อยแล้ว ดังนั้นคุณต้องตรวจสอบเส้นทางโค้ดที่เป็นไปได้ทั้งหมดเพื่อให้แน่ใจว่าปลุกล็อกไม่ได้ทำงานอยู่