Держать экран включенным, в какую сторону? - PullRequest
9 голосов
/ 05 мая 2010

Я нашел два способа держать экран включенным:

Первый проще:

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

Есть ли реальная разница между этими двумя методами, кроме того, что второй более сложен в реализации и требует дополнительного разрешения? Будет ли конечный результат всегда одинаковым?

1 Ответ

22 голосов
/ 05 мая 2010

Вы должны увидеть Код для (Батареи) Life Презентация Google IO, слайд 16

Если вы не хотите, то: Вы можете сделать первый в XML для любого элемента макета, и это рекомендуемый для использования (хотя не знаю, как применить его к окну, может быть так плохо как вейк, не знаю).

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