Trang này mô tả cách giải phóng khoá đánh thức do ứng dụng của bạn giữ. Điều quan trọng là bạn phải giải phóng khoá đánh thức ngay khi ứng dụng của bạn dùng xong để tránh làm hao pin.
Giải phóng một khoá đánh thức đang hoạt động
Để giải phóng một khoá đánh thức đang hoạt động, hãy gọi phương thức release()
của khoá đó. Khi đó, yêu cầu của bạn sẽ được giải phóng cho CPU.
Ví dụ: đoạn mã sau đây thu nhận một khoá đánh thức, thực hiện một số thao tác rồi giải phóng khoá đánh thức:
Kotlin
@Throws(MyException::class) fun doSomethingAndRelease() { wakeLock.apply { try { acquire() doTheWork() } finally { release() } } }
Java
void doSomethingAndRelease() throws MyException { try { wakeLock.acquire(); doTheWork(); } finally { wakeLock.release(); } }
Hãy nhớ huỷ bỏ khoá chế độ thức ngay khi không còn cần thiết nữa. Ví dụ: nếu bạn sử dụng khoá chế độ thức để cho phép hoàn thành một tác vụ ở chế độ nền, hãy nhớ huỷ bỏ khoá ngay khi tác vụ hoàn tất.
Các điểm chính về mã này
Trong ví dụ này, phương thức doTheWork()
có thể gửi một ngoại lệ. Vì lý do này, mã sẽ giải phóng khoá chế độ thức trong khối finally
để đảm bảo khoá chế độ thức được giải phóng cho dù có ngoại lệ hay không. Điều rất quan trọng là bạn phải đảm bảo mọi khoá chế độ thức mà bạn đặt đều được giải phóng, vì vậy, bạn cần kiểm tra mọi đường dẫn mã có thể để đảm bảo khoá chế độ thức không bị bỏ lại ở trạng thái hoạt động trên bất kỳ đường dẫn nào.