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