Đặt và quản lý khoá chế độ thức

Nếu cần giữ cho thiết bị luôn chạy để hoàn thành một số công việc trước khi thiết bị chuyển sang trạng thái tạm ngưng, bạn có thể sử dụng tính năng dịch vụ hệ thống PowerManager có tên là khoá chế độ thức. Khoá chế độ thức cho phép ứng dụng của bạn kiểm soát trạng thái nguồn của thiết bị.

Đặt khoá chế độ thức

Để sử dụng khoá chế độ thức, bước đầu tiên là thêm quyền WAKE_LOCK vào tệp kê khai của ứng dụng:

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

Nếu ứng dụng của bạn có một broadcast receiver sử dụng một dịch vụ để thực hiện một số công việc, thì sau đây là cách bạn đặt trực tiếp khoá chế độ thức:

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();

Giải phóng khoá chế độ thức

Để nhả khoá chế độ thức, hãy gọi wakelock.release(). Thao tác này sẽ giải phóng quyền xác nhận của bạn cho CPU. Bạn cần phải nhả khoá chế độ thức ngay khi ứng dụng của bạn ngừng sử dụng khoá đó để tránh tiêu hao pin.

Xem thêm