Android включи экранAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android включи экран

Сообщение Anonymous »

Я делаю приложение, в котором запуск активности запланирован с помощью AlarmManager. Я хотел бы появляться, даже если экран выключен и устройство заблокировано.

Чтобы добиться этого, установите флаги окна

Код: Выделить всё

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();
}
_lock — это PowerManager.WakeLock, который запускается в режиме onPause

Код: Выделить всё

protected void onPause()
{
if(_lock != null)
{
_lock.release();
}
}
Этот код выполняется в onCreate и onRestart. Все работает нормально, если активность еще не запущена.

Но если он был запущен раньше, экран не выключается.
  • Сначала вызывается onRestart
  • Затем вызывается onResume
  • Немедленно вызывается onPause
Поэтому активность не запускается. У меня вопрос, как включить экран в такой ситуации. (Я использую API 15).
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»