Một số ứng dụng cần duy trì trạng thái bật màn hình, chẳng hạn như trò chơi hoặc ứng dụng xem phim. Một số API Android tự động duy trì trạng thái bật màn hình cho bạn. Trong các trường hợp khác, bạn có thể đặt cờ để giữ màn hình luôn bật theo cách thủ công.
Luôn bật màn hình theo cách thủ công
Để duy trì màn hình của thiết bị luôn bật, hãy đặt cờ FLAG_KEEP_SCREEN_ON trong hoạt động của bạn. Bạn chỉ có thể đặt cờ này trong một hoạt động, tuyệt đối không được đặt trong một dịch vụ hoặc thành phần ứng dụng khác. Ví dụ:
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } }
Một cách khác để duy trì trạng thái bật màn hình là đặt thuộc tính android:keepScreenOn trong tệp XML bố cục của ứng dụng:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true"> ... </RelativeLayout>
Việc sử dụng android:keepScreenOn="true" tương đương với việc sử dụng FLAG_KEEP_SCREEN_ON.
Bạn có thể sử dụng phương pháp phù hợp nhất cho ứng dụng của mình. Ưu điểm của việc đặt cờ theo phương thức lập trình trong hoạt động là bạn có thể xoá cờ theo phương thức lập trình sau đó, nhờ đó cho phép màn hình tắt.
Nếu một ứng dụng có cờ FLAG_KEEP_SCREEN_ON chuyển sang chế độ nền, thì hệ thống sẽ cho phép màn hình tắt bình thường. Bạn không cần phải xoá cờ một cách rõ ràng trong trường hợp này. Nếu ứng dụng của bạn không cần duy trì màn hình bật nữa,
bạn nên xoá cờ bằng cách gọi
clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).
Chế độ môi trường xung quanh cho TV
Trên thiết bị TV, hãy sử dụng FLAG_KEEP_SCREEN_ON để ngăn thiết bị chuyển sang Chế độ môi trường xung quanh trong khi phát video. Nếu hoạt động trên nền trước không đặt FLAG_KEEP_SCREEN_ON, thì thiết bị sẽ tự động chuyển sang Chế độ môi trường xung quanh sau một khoảng thời gian không hoạt động.