2012-01-24 5 views
2

Для приложения, которое я пишу, если пользователь блокирует свой телефон во время работы приложения, я хочу, чтобы экран вывода появлялся, когда приложение возобновляется из заблокированного состояния. Есть ли метод обратного вызова или что-то, что я могу использовать для захвата этого изменения состояния?Application Callback On Device Unlock

ответ

6

Вам нужно будет расширить BroadcastReceiver, у которого есть метод под названием onReceive, который ожидает контекст и намерение.

Вы можете задать намерения что-то вроде:

if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){ 

    // Do something really cool 

}else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 

    // Do something else equally cool 

} 

Приветствия ...

+0

выше метод работает, если вы хотите, чтобы поймать экран, и дальше и не, если устройство блокировки клавиатуры блокировки/разблокировки (для эта проверка ниже) ... –

+0

@Navin 'check below' - это плохой способ делегировать читателя (неверен, если ваш вопрос получил больше голосов, чем этот). Вы должны сказать, что кто-то должен прочитать ваш ответ :) – WarrenFaith

+0

новый в мире StackOverflow ... в любом случае спасибо за то, что он поднял его. –

4

Создайте широковещательный приемник для ACTION_USER_PRESENT .... установите флаг в настройках вашего приложения, когда вызывается onReceive() широковещательного приемника ... В onResume() вашей активности проверьте флаг ... Если установлен флаг (означает, что пользователь заблокировал и разблокировал телефон), отобразите действие PIN-кода (не забудьте сбросить флаг в предпочтении).