Как поймать нажатие кнопки «Домой» с помощью широковещательного приемника или другого метода и остановить его?

Я пытаюсь создать приложение для блокировки экрана. Тем не менее, я испытываю зияющую дыру в системе. В тот момент, когда пользователь щелкает/касается/нажимает кнопку «Домой», активность переходит в фоновый режим. Как мне предотвратить это? Это возможно?

Хотелось бы подробного объяснения, как это сделать.


person Sunny    schedule 03.11.2013    source источник
comment
Вы не можете помешать кнопке «Домой» перевести пользователя в панель запуска. Это фундаментальная функция безопасности Android. Вы ничего не можете сделать, чтобы остановить это, и это очень хорошо. Вы можете создать свою собственную версию Android, чтобы предоставить приложениям возможность переопределить это.   -  person Simon    schedule 03.11.2013


Ответы (1)


Нет, невозможно предотвратить переход активности в фоновый режим, но вы можете перехватывать событие при нажатии кнопки «Домой», чтобы вы могли освобождать ресурсы или выполнять любые другие действия, когда активность переходит в фоновый режим.

вы можете переопределить метод onStop

@Override
        protected void onStop() {

            super.onStop();
        }
person Hardik    schedule 03.11.2013
comment
Спасибо за ответ, не могли бы вы немного подробнее рассказать о том, как и что вы пытаетесь сказать? - person Sunny; 03.11.2013
comment
Я просто пытаюсь объяснить вам, что вы можете перехватывать только событие кнопки «Домой», но не предотвращать переход активности в фоновый режим. вы можете поймать событие кнопки «Домой» в методе onstop(). - person Hardik; 03.11.2013
comment
А как насчет метода abortBroadcast()? Что именно это сделало бы, если бы я использовал его на этом? - person Sunny; 03.11.2013
comment
Или как насчет этого: в момент нажатия кнопки «Домой» я вспоминаю действие, если оно ушло на задний план, и возвращаю его на передний план. Будет ли это разумным взломом, чтобы обойти это? - person Sunny; 03.11.2013
comment
нет, это неправильный способ сделать это, но если вы не нашли другого способа, вы можете сделать это. поместите свой начальный код активности после super.onStop(). - person Hardik; 03.11.2013
comment
Что ты пытаешься сделать? Почему бы не создать свой собственный экран блокировки? Вы пытаетесь взломать Android таким образом, что это не будет приятно для пользователя. - person Simon; 03.11.2013
comment
Саймон, я создаю собственную активность и использую очень продвинутый механизм хранения пароля. Моя цель состоит в том, чтобы это действие, которое я создал, вызывалось каждый раз, когда пользователь разблокирует свой телефон, чтобы обеспечить лучшую безопасность. Кроме того, я не хочу, чтобы экран переходил в фоновый режим каждый раз, когда он нажимает кнопку «Домой», поскольку было бы притворством, если бы блокировку можно было превзойти, просто нажав «Домой», и не было бы никакого смысла ввод пароля. - person Sunny; 03.11.2013