Я нашел два пути при хранении экрана на:
Сначала каждый более прост:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Второй использует wakelock и требует дополнительного разрешения:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");
Есть ли какая-либо реальная разница между этим два метода кроме второго, являющегося более сложным для реализации и требующий дополнительного разрешения? Конечным результатом всегда будет то же?
Вы должны увидеть Coding for (Battery) Life Презентация Google IO, слайд 16
Если вы не хотите, то: вы можете сделать первый в XML для любого макета элемент, и его рекомендуется использовать (не знаю, как применить его к окну, может быть так же плохо, как wakelock, не знаю).
XML:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true">
Флаг окна:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);