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