Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Ciertas apps necesitan mantener la pantalla encendida, como las apps de juegos o de cine.
Algunas APIs de Android mantienen la pantalla encendida automáticamente. En otros casos, puedes configurar una marca para mantener la pantalla encendida de forma manual.
Cómo mantener la pantalla encendida de forma manual
Para mantener la pantalla del dispositivo encendida, establece la marca FLAG_KEEP_SCREEN_ON en tu actividad. Esta marca solo se puede establecer en una actividad, nunca en un servicio ni en otro componente de la app. Por ejemplo:
El uso de android:keepScreenOn="true" equivale a usar FLAG_KEEP_SCREEN_ON.
Puedes usar el enfoque que se adapte mejor a tu app. La ventaja de configurar la marca programáticamente en tu actividad es que te brinda la opción de borrar el marcador más adelante de manera programática, lo que permite que se apague la pantalla.
Si una app con la marca FLAG_KEEP_SCREEN_ON pasa a segundo plano, el sistema permite que la pantalla se apague de forma normal. No es necesario borrar la marca de forma explícita en este caso. Si tu app ya no necesita mantener la pantalla encendida, debes borrar la marca llamando a clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).
Modo ambiente para TV
En dispositivos de TV, usa FLAG_KEEP_SCREEN_ON para evitar que el dispositivo entre en el Modo ambiente durante la reproducción de video activa. Si la actividad en primer plano no establece FLAG_KEEP_SCREEN_ON, el dispositivo entra automáticamente en el modo ambiente después de un período de inactividad.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)"]]