Android: предотвратить блокировку устройства при нажатии кнопки питания

У меня есть приложение, которое, когда устройство блокируется, вместо этого запускает действие. При этом устройство не блокируется, но показывает активность. Хорошо. Моя проблема в том, что если я уже нахожусь в действии, и когда я нажимаю кнопку питания, устройство блокируется.

В BroadcastReceiver я вижу, что экран выключен:

if (action.equals(Intent.ACTION_SCREEN_OFF)) {
            isScreenOff = true;
            final Intent serviceIntent = new Intent(context, Screensaver.class);
            serviceIntent.putExtra("screen_state", isScreenOff);
            context.startService(serviceIntent);
            Log.i(TAG, "SCREEN OFF.");
        }

Затем вызывается onStartCommand() в моей службе. В нем я начинаю свою деятельность. В действии я вижу, что вызывается onResume(), а затем onPause() и все. Устройство заблокировано, экран выключен. Если я разблокирую его вручную, активность будет, но нет необходимости разблокировать его вручную. У вас есть идеи, как я могу это исправить? (Не стесняйтесь спрашивать меня, нужно ли мне опубликовать больше кода).

ИЗМЕНИТЬ Вот видео, чтобы было понятнее. В конце концов, я нахожусь в своей заставке, и когда я нажимаю кнопку питания, устройство блокируется и больше не запускает экран.


person dephinera    schedule 10.01.2015    source источник
comment
предотвратить блокировку устройства при нажатии кнопки питания — в каких случаях пользователю может понадобиться такое поведение?   -  person CommonsWare    schedule 10.01.2015
comment
Я не думаю, что это возможно.   -  person Simar    schedule 10.01.2015
comment
Если я не занят и если я нажимаю кнопку, устройство не блокируется, но начинает свою деятельность, как должно. Так что, возможно, это возможно.   -  person dephinera    schedule 10.01.2015
comment
Я добавил видео, чтобы вы могли увидеть, как работает мое приложение и в чем моя проблема.   -  person dephinera    schedule 10.01.2015


Ответы (1)


Я понял! Поскольку активность началась, когда я заблокировал устройство, вызов Activity.recreate() в onStop() устранил мою проблему.

person dephinera    schedule 11.01.2015