У меня есть Activity
, для которого обычно требуется некоторое время, чтобы смотреть экран без взаимодействия с ним.
Проблема в том, что экран выключается, как и с almos в любом другом приложении. Я хочу предотвратить автоматическое отключение для моей Activity
, например Dolphin HD (если вы настроите его из меню настроек).
Я хочу, чтобы пользователь отключил экран, нажимая обычную кнопку блока, но не включайте автоматический блок устройства во время моей Activity
.
Как я могу это достичь?
Thanx.
Добавьте android:keepScreenOn="true"
к некоторому виджету в вашем XML-ресурсе макета для этого действия. Пока этот виджет отображается на экране, экран не будет автоматически отключен.
РЕДАКТИРОВАТЬ:
WakeLock
, как это было предложено другими ответами, технически будет работать. Но тогда вы должны вручную освободить WakeLock
(если вы это испортите, экран останется надолго). И, поскольку вы можете испортить это, вам нужно разрешение WAKE_LOCK
. Использование keepScreenOn
позволяет избежать всего этого.
Чтобы изменить его на лету, выполните следующие действия:
if (keepScreenOn) getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); else getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Вы хотите добавить WAKE_LOCK в свой манифест и установить и удалить его по мере необходимости в своем приложении. См. Документацию google для PowerManager.WAKE_LOCK
http://developer.android.com/reference/android/os/PowerManager.html
Возможно, вы захотите использовать блокировку слежения, чтобы предотвратить выключение экрана. См. Ссылку http://developer.android.com/reference/android/os/PowerManager.WakeLock.html.