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:
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ượngPowerManager.WakeLock
nhưng không thực sự giữ cho thiết bị ở trạng thái hoạt động.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.