para - manual de programacion android pdf
Pantalla de fuerza activada (3)
¿Cómo fuerzo la pantalla para que permanezca activa y no se apague mientras mi aplicación se está ejecutando?
POR FAVOR, NO UTILICE UN BLOQUEO DESPERTADOR
Esto requiere que otorgue a su aplicación un permiso adicional, y es muy fácil introducir errores donde accidentalmente permanece sosteniendo el bloqueo de activación y así dejar la pantalla encendida.
Es mucho mejor utilizar el indicador de ventana FLAG_KEEP_SCREEN_ON
, que puede habilitar en la ventana de su actividad en su onCreate()
esta manera:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Esto asegurará que la pantalla permanezca encendida mientras su ventana esté en primer plano, y solo mientras esté en primer plano. Simplifica en gran medida este caso de uso común, lo que elimina cualquier malabares que deba hacer a medida que la aplicación realiza la transición entre estados.
¡Esta pregunta ya tiene una gran respuesta por @hackbod!
¡Estoy respondiendo esta pregunta con dos soluciones adicionales!
Solución existente:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Soluciones adicionales:
podemos usar keepScreenOn
1. implementation
usando setKeepScreenOn() in java code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// or any View (in case generated programmatically )
View v = getLayoutInflater().inflate(R.layout.driver_home, null);
v.setKeepScreenOn(true);
setContentView(v);
}
Documentos http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)
2. Agregar keepScreenOn
al xml layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true" >
Documentos http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn
Nota (Algunos puntos útiles):
1. No importa que keepScreenOn
se use en Main/Root/Parent View
se puede usar con cualquier child view
Funciona igual que funciona en Parent view
2. La cuestión de solo la cosa es que View''s Visibility must be visible
lo contrario, ¡no funcionará!
Otra solución es agregar android:keepScreenOn="true"
( documentation ) a las vistas que necesitan mantener la pantalla encendida.
Permite un control un poco más granular en términos de qué vistas permanecen y cuáles no. Incluso puede hacer referencia a una configuración desde un archivo de recursos de esta manera.