Lỗi xảy ra với khóa chế độ thức một phần

Khoá chế độ thức một phần là cơ chế trong API PowerManager cho phép các nhà phát triển tiếp tục chạy CPU sau khi màn hình của thiết bị tắt (cho dù do hệ thống hết thời gian chờ hay người dùng nhấn nút nguồn). Ứng dụng của bạn sử dụng tính năng khoá chế độ thức một phần bằng cách gọi acquire() với cờ PARTIAL_WAKE_LOCK. Khoá chế độ thức một phần sẽ bị lỗi nếu nó bị khoá trong thời gian dài khi ứng dụng đang chạy ở chế độ nền (nghĩa là người dùng không thể nhìn thấy phần nào của ứng dụng). Tình trạng này sẽ làm tiêu hao pin của thiết bị vì nó ngăn thiết bị chuyển sang trạng thái nguồn thấp hơn. Bạn chỉ nên sử dụng khoá chế độ thức một phần khi cần thiết và mở khoá ngay khi không còn cần dùng nữa.

Nếu ứng dụng của bạn bị lỗi một phần khoá chế độ thức, bạn có thể sử dụng hướng dẫn trong trang này để chẩn đoán và khắc phục sự cố.

Phát hiện vấn đề

Không phải lúc nào bạn cũng biết khóa chế độ thức một phần trong ứng dụng của mình bị lỗi. Nếu bạn đã phát hành ứng dụng, thì Android vitals có thể giúp bạn nhận biết được vấn đề đó.

Android vitals

Android vitals có thể giúp cải thiện hiệu suất của ứng dụng bằng cách cảnh báo cho bạn qua Play Console khi ứng dụng của bạn đang ở trạng thái lỗi với khoá chế độ thức một phần. Android vitals báo cáo khoá chế độ thức một phần gặp lỗi khi chế độ này kéo dài trong thời gian ít nhất một tiếng trong một phiên pin

Định nghĩa về phiên pin là tuỳ theo phiên bản nền tảng.

  • Trong Android 10, phiên pin là tổng hợp của tất cả các báo cáo pin nhận được trong khoảng thời gian 24 giờ nhất định. Báo cáo về pin được tính trong khoảng thời gian giữa hai lần sạc pin, kể cả khi sạc từ dưới 20% đến trên 80% hoặc từ bất kỳ mức sạc nào đến 100%.
  • Trong Android 11, phiên pin là khoảng thời gian 24 giờ cố định.

Số phiên pin hiển thị là số liệu tổng hợp của tất cả người dùng được đo lường trong ứng dụng. Để biết thêm thông tin về cách Google Play thu thập dữ liệu Android vitals, vui lòng xem tài liệu Play Console.

Khi tính năng khoá chế độ thức một phần trên ứng dụng lỗi quá nhiều lần, việc tiếp theo bạn cần làm là nhanh chóng giải quyết vấn đề.

Khắc phục vấn đề

Vì khoá chế độ thức có thể làm tiêu hao pin thiết bị, nên bạn không nên sử dụng khoá chế độ thức nếu có phương án thay thế. Tài liệu Chọn API phù hợp để giữ cho thiết bị luôn thức có thể giúp bạn tìm ra giải pháp tốt nhất cho ứng dụng của mình.

Nếu bạn cần sử dụng khoá chế độ thức, hãy làm theo các phương pháp hay nhất về khoá chế độ thức để đảm bảo khoá chế độ thức không làm giảm hiệu suất của thiết bị. Cụ thể, hãy đảm bảo rằng mọi thiết bị bạn nhận được đều được phát hành và phát hành khoá nhanh nhất có thể.

Sau khi khắc phục sự cố về mã, hãy xác minh là ứng dụng của bạn phát hành khoá chế độ thức chính xác bằng cách sử dụng các công cụ sau:

  • dumpsys – một công cụ cung cấp thông tin về trạng thái của các dịch vụ hệ thống trên một thiết bị. Để xem trạng thái của dịch vụ nguồn, bao gồm danh sách các khóa chế độ thức, hãy chạy adb shell dumpsys power.

  • Battery Historian – một công cụ phân tích cú pháp kết quả của báo cáo lỗi trên Android thành một bảng trình bày hình ảnh về các sự kiện liên quan đến nguồn điện.