ปล่อย Wake Lock

หน้านี้อธิบายวิธีปล่อย 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 นานเกินความจำเป็น

ดูเพิ่มเติม