test pie notes how google devices developers developer android screen power-management

pie - android release notes



Método correcto para setKeepScreenOn/FLAG_KEEP_SCREEN_ON (5)

Como dijo Hawk pero mal explicado.

También puede usar FLAG_KEEP_SCREEN_ON en su archivo de diseño XML.

Tenga en cuenta el android:keepScreenOn="true"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:keepScreenOn="true" android:orientation="vertical" > <!-- whatever is in your layout --> </LinearLayout>

Ahora he escrito todas las opciones para mantener la pantalla en una publicación de blog:
http://blog.blundellapps.com/tut-keep-screen-onawake-3-possible-ways/

Estoy utilizando el método setKeepScreenOn (verdadero) y no he podido averiguar cómo llamar esto en relación con la Actividad actual (que tiene un conjunto de vistas de contenido). Pude hacer que funcionara al llamar a uno de mis botones, que siempre está presente en la vista, pero esto se siente mal, y estoy seguro de que debe haber una manera de evitar esto. Intenté hacer referencia al enfoque actual de esta manera:

getCurrentFocus().setKeepScreenOn(true);

pero que arrojó una NullPointerException. Tal vez no había un enfoque actual. Entonces, ¿alguien puede decirme cómo puedo hacer referencia a la clase de vista en la que estoy trabajando? Gracias :)


De acuerdo con Google Docs para desarrolladores de Android, tienes dos formas de hacer esto:

Primera forma:

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); }

La segunda forma es agregar en su diseño de archivo xml este atributo: android:keepScreenOn="true"


Establecer android:keepScreenOn en XML


Intenta esta respuesta :

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

getWindow es un método definido para actividades, y no requerirá que primero encuentre una View .


Si lo estás haciendo en una clase amplía la vista. Puedes simple:

this.setKeepScreenOn(true);