ตั้งค่าและจัดการ Wake Lock

หากต้องการให้อุปกรณ์ทำงานต่อไปเพื่อให้งานบางอย่างเสร็จสมบูรณ์ก่อนที่อุปกรณ์จะเข้าสู่สถานะ "หยุดชั่วคราว" คุณสามารถใช้ฟีเจอร์บริการระบบของ PowerManager ที่เรียกว่าการล็อกการปลุก ล็อกการปลุกช่วยให้แอปควบคุมสถานะพลังงานของอุปกรณ์ได้

ตั้งค่าการล็อกที่ปลุกอุปกรณ์

หากต้องการใช้การล็อกการปลุก ขั้นตอนแรกคือเพิ่มสิทธิ์ WAKE_LOCK ลงในไฟล์ Manifest ของแอปพลิเคชัน

<uses-permission android:name="android.permission.WAKE_LOCK" />

หากแอปมี Broadcast Receiver ที่ใช้บริการเพื่อทำงานบางอย่าง วิธีตั้งค่าการปลุกโดยตรงมีดังนี้

Kotlin

val wakeLock: PowerManager.WakeLock =
        (getSystemService(Context.POWER_SERVICE) as PowerManager).run {
            newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag").apply {
                acquire()
            }
        }

Java

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
        "MyApp::MyWakelockTag");
wakeLock.acquire();

ปล่อย Wake Lock

หากต้องการยกเลิกการล็อกการปลุก ให้โทรหา wakelock.release() ซึ่งจะเป็นการยกเลิกการอ้างสิทธิ์ใน CPU คุณควรยกเลิกการล็อกการปลุกทันทีที่แอปของคุณใช้งานเสร็จแล้วเพื่อไม่ให้แบตเตอรี่หมด

ดูเพิ่มเติม