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