2013-05-24 2 views
1

Я пытаюсь разработать пользовательский «блокирующий экран».Как перезапустить такую ​​же активность сразу после нажатия кнопки HOME?

Основная проблема, с которой я сталкиваюсь, заключается в том, что пользователь может фактически выйти из моей активности «блокировки экрана», просто нажав кнопку HOME.

Я знаю, что невозможно заблокировать или переопределить HOME. Мне было интересно, есть ли способ перезапустить ту же самую активность, когда пользователь нажимает HOME.

Я попытался перезапустить активность из onPause(), действительно, активность перезагружается, но перезагрузка занимает несколько секунд, поэтому «блокировка экрана» бессмысленна.

Есть ли способ перезапустить мероприятие немедленно после того, как Home нажат?

+0

Взгляните на мой ответ [здесь] (http://stackoverflow.com/questions/16657300/disable-all-home-button-and-task-bar-features-on-nexus-7/16657359#16657359). Я думаю, что это может содержать то, что вы ищете. Может быть. – TronicZomB

+0

@TronicZomB спасибо! Но мне нужно, чтобы кнопка HOME была нажата, а не BACK. НАЗАД можно переопределить, а HOME нет. Поэтому я ищу совершенно другое решение! Спасибо, в любом случае!!! –

+0

У меня есть кнопки BACK и HOME в этом ответе. Чтобы обойти кнопку HOME, вы должны сделать свое приложение домашним приложением. Просто добавьте четвертый фрагмент кода до вашего манифеста. Однако это приведет к тому, что приложение полностью заменит домашний экран (хотя его можно отменить). Кроме этого, нет возможности обойти домашнюю кнопку. – TronicZomB

ответ

2

У меня была такая же проблема один раз, и я создал Service, который работал в фоновом режиме. У него был цикл TimerTask, который выполнялся каждую секунду и проверял, что мой LockScreenActivity был на переднем плане. Вы можете сделать это так:

List<ActivityManager.RunningTaskInfo> runningTasks = activityManager.getRunningTasks(4096); 
    return runningTasks.get(0).topActivity.getClassName(); 

Если мой Lockscreen не был на переднем плане, я начал его вверх/принес его на передний план вновь (сделать его SingleTop в манифесте).

Ответ TronicZomB выглядит более изощренным.

Смежные вопросы