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

Bạn có thể đặt khoá chế độ thức để tạm thời giữ cho thiết bị ở trạng thái thức.

Phần phụ thuộc

Ứng dụng của bạn phải có quyền WAKE_LOCK để đặt khoá chế độ thức. Thêm quyền vào tệp kê khai của ứng dụng:

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

Tạo và mua khoá chế độ thức

Để lấy khoá chế độ thức, hãy làm như sau:

  1. Gọi PowerManager.newWakeLock() để tạo khoá chế độ thức. Thao tác này sẽ tạo và định cấu hình đối tượng PowerManager.WakeLock nhưng không thực sự giữ cho thiết bị thức.

  2. Khi bạn muốn giữ cho thiết bị luôn thức, hãy gọi phương thức acquire() của đối tượng khoá chế độ thức.

Ví dụ: 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ì bạn có thể sử dụng mã này để đặt và nhận khoá chế độ thức:

Kotlin

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

Java

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

Các điểm chính về mã này

Khi tạo đối tượng khoá chế độ thức, mã sẽ sử dụng tên của lớp làm một phần của thẻ khoá chế độ thức. Bạn nên đưa tên gói, lớp hoặc phương thức vào thẻ khoá chế độ thức. Bằng cách đó, nếu xảy ra lỗi, bạn sẽ dễ dàng xác định được khoá chế độ thức trong mã nguồn của mình. Để biết thêm thông tin, hãy xem phần Đặt tên khoá chế độ thức đúng cách.

Xem thêm