Чтобы добиться этого, установите флаги окна
Код: Выделить всё
final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
Код: Выделить всё
if(_lock == null)
{
PowerManager pm = (PowerManager)App.getAppContext()
.getSystemService(Context.POWER_SERVICE);
_lock = pm.newWakeLock(
PowerManager.FULL_WAKE_LOCK, "ScreenOn");
_lock.acquire();
}
Код: Выделить всё
protected void onPause()
{
if(_lock != null)
{
_lock.release();
}
}
Но если он был запущен раньше, экран не выключается.
- Сначала вызывается onRestart
- Затем вызывается onResume
- Немедленно вызывается onPause
Мобильная версия