2011-01-26 3 views
57

mantener utilicé:Desactivar pantalla en la

getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

¿Cómo continúo de estado por defecto (sin-mantener-a)?

+0

Sé que se acepta la respuesta, pero me pregunto cuál sería su caso de uso para esto? ¿Quieres mantener la pantalla encendida mientras la actividad está en la pantalla, después de ella o qué? ¿Cuándo le gustaría volver a establecerlo en "estado predeterminado (no mantener)"? Gracias por las aclaraciones – Ewoks

+3

@Ewoks: un caso de uso es cuando proporciona una preferencia de usuario para mantener la pantalla encendida durante una actividad en particular (por ejemplo, leer texto) y el usuario la apaga mientras la actividad está activa (o en la pila posterior)) Luego, querrá apagar la bandera sin reiniciar la actividad en sí. (La alternativa sería que el cambio de preferencia no surta efecto hasta que la actividad finalice y se reinicie). –

Respuesta

116

creo que esto debería hacerlo:

getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Ver API para más detalles.

+4

Solo una nota para cualquier persona que no esté al tanto. Es necesario agregar y borrar estos indicadores en el hilo de la interfaz de usuario. Esto me sorprendió de una manera extraña. En lugar de simplemente no funcionar, vi el funcionamiento intermitente e incluso invertido de los indicadores KEEP_SCREEN_ON. –

+0

Me preguntaba por qué la respuesta recibió una tasa tan alta pero no funcionó para mí. Después de varias horas, realmente veo que hay otra actividad en mi aplicación que mantiene la pantalla encendida. Así que comprueba otras actividades si el código anterior no funciona para ti. :RE – thanhbinh84

17

Si en su lugar establece un indicador de android: keepScreenOn = "true" (documentation) solo en las vistas que necesitan mantener la pantalla encendida, no necesitaría restablecer el indicador manualmente.

4

Otro enfoque

getWindow().setFlags(this.getWindow().getFlags() & ~WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Also read this

y también se puede establecer en la raíz android:keepScreenOn="true" Ver en XML.

Cuestiones relacionadas