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

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

Phần phụ thuộc

Ứng dụng của bạn phải có quyền WAKE_LOCK để đặt khoá đánh 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à nhận khoá đánh thức

Để nhận khoá đánh thức, hãy làm như sau:

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

  2. Khi bạn muốn giữ cho thiết bị ở trạng thái 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 dùng một dịch vụ để thực hiện một số thao tác, bạn có thể dùng mã này để thiết lập và nhận khoá đánh 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);
PowerManager.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á đánh thức, mã sẽ dùng tên của lớp làm một phần của thẻ khoá đánh 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 vị trí khoá đánh 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 cho khoá chế độ thức một cách phù hợp.

Xem thêm