Một số ứng dụng cần phải bật màn hình, chẳng hạn như ứng dụng trò chơi hoặc ứng dụng xem phim. Một số API Android sẽ tự động 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 bật theo cách thủ công.
Luôn bật màn hình theo cách thủ công
Để giữ màn hình thiết bị luôn bật, hãy đặt cờ FLAG_KEEP_SCREEN_ON
trong hoạt động. Bạn chỉ có thể đặt cờ này trong một hoạt động, không bao giờ được đặt trong một dịch vụ hoặc thành phần ứng dụng khác. Ví dụ:
Kotlin
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } }
Java
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } }
Một cách khác để giữ cho màn hình luôn bật 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 nào phù hợp nhất với ứng dụng của mình. Ưu điểm của việc thiết lập 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 này, 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ạy ở chế độ nền, thì hệ thống sẽ cho phép màn hình tắt như 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 giữ 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 đang phát video. Nếu hoạt động trên nền trước không đặt FLAG_KEEP_SCREEN_ON
, 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.