2010-12-01 5 views
3

Я хочу, чтобы пользователь вводил пароль каждый раз, когда он пытался ввести приложение. То есть, пользователь должен ввести пароль каждый раз, когда приложение появляется на передний план от фона, то его, нажав на значок пусковой или долгое нажатие на домашний ключеКак защитить паролем приложение в Android

I рода-достигнута первая часть, потому что умывальник запускается, и я получаю обратный вызов в onRestart этого действия.

Но при длительном нажатии основного ключа и запуске не предоставляется обратный вызов onRestart.

Также, если пользователь запускает приложение, нажав уведомление, из панели уведомлений. Как я отличаю было ли приложение первоначально в фоновом режиме или указательной земле, прежде чем пользователь нажал уведомление

+0

"onRestart" - вы имеете в виду onResume()? – 2010-12-01 10:41:50

+2

by onRestart Я имею в виду onRestart, а не onResume, потому что onResume в конечном итоге будет вызван onStart – pankajagarwal 2010-12-01 11:06:25

ответ

1

В вашем onResume вызова, установите loginCounter + = 1, в вашем - = 1.

если loginCounter == 0 => показать диалог входа.

В строке уведомлений вы устанавливаете Intent, чтобы позвонить Activity, исправьте? Просто добавьте параметр «isCalledByNotificationBar» как булевский.

+1

На стороне: вы никогда не сможете перезаписать поведение HomeKey. Это возможно только в том случае, если вы измените исходный код Android и развернете его на своем целевом устройстве (маловероятно). – 2010-12-01 10:52:40

1

Если onResume не работает, как насчет onWindowFocusChanged(boolean)?

1

Возможно, что вам нужно сделать это при повторном входе в приложение, посмотрите, было ли меньше 30 секунд (?) Со времени, которое вы обновляете, когда какое-либо действие вашего приложения было приостановлено в последний раз. Если это было меньше, не просите пароль. Думая, что это короткое окно времени может сгладить некоторые переходы, которые вы не хотите выходить из системы.

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