Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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
Để 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ụ:
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 đặ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ạ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 phát video đang hoạt động. 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.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Keep the screen on\n\nCertain apps need to keep the screen turned on, such as games or movie apps.\nSome Android APIs automatically keep the screen on for you. In other cases,\nyou can set a flag to manually keep the screen on.\n| **Note:** Keeping the device's screen on can drain the battery quickly. Ordinarily, you should let the device turn the screen off if the user is not interacting with it. If you do need to keep the screen on, do so for as short a time as possible.\n\nManually keep the screen on\n---------------------------\n\nTo keep the device's screen on, set the [`FLAG_KEEP_SCREEN_ON`](/reference/android/view/WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON) flag in your\nactivity. This flag may only be set in an activity, never in a service or other\napp component. For example: \n\n### Kotlin\n\n```kotlin\nclass MainActivity : Activity() {\n\n override fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n setContentView(R.layout.activity_main)\n window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)\n }\n}\n```\n\n### Java\n\n```java\npublic class MainActivity extends Activity {\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_main);\n getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);\n }\n}\n```\n\nAnother way to keep the screen on is by setting the\nthe [`android:keepScreenOn`](/reference/android/R.attr#keepScreenOn) attribute\nin your application's layout XML file: \n\n```xml\n\u003cRelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n android:layout_width=\"match_parent\"\n android:layout_height=\"match_parent\"\n android:keepScreenOn=\"true\"\u003e\n ...\n\u003c/RelativeLayout\u003e\n```\n\nUsing `android:keepScreenOn=\"true\"` is equivalent to using\n[`FLAG_KEEP_SCREEN_ON`](/reference/android/view/WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON).\nYou can use whichever approach is best for your app. The advantage of setting\nthe flag programmatically in your activity is that it gives you the option of\nprogrammatically clearing the flag later and thereby allowing the screen to turn\noff.\n\nIf an app with the `FLAG_KEEP_SCREEN_ON` flag goes into the background, the\nsystem allows the screen to turn off normally. You don't need to explicitly\nclear the flag in this case. If your app no longer needs to keep the screen on,\nyou should clear the flag. by calling\n[`clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)`](/reference/android/view/Window#clearFlags(int)).\n\n### Ambient Mode for TV\n\nOn TV devices, use [`FLAG_KEEP_SCREEN_ON`](/reference/android/view/WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON) to prevent the device from going\ninto [Ambient Mode](/training/tv/playback/ambient-mode) during active video playback. If the foreground activity\ndoes not set `FLAG_KEEP_SCREEN_ON`, the device automatically enters Ambient Mode\nafter a period of inactivity.\n\nSee also\n--------\n\n- [Keep the device awake](/develop/background-work/background-tasks/awake)\n- [Use wake locks](/develop/background-work/background-tasks/awake/wakelock)"]]