2010-12-01 13 views
3

ユーザーは、アプリケーションに入るたびにパスワードを入力する必要があります。それはアプリがバックグラウンドからフォアグラウンドに来るユーザーは毎回パスワードを入力する必要があり、それが長押しランチャーアイコンまたはを押しても、であるホームキーAndroidでアプリケーションをパスワードで保護する方法

ため、私は最初の部分達成ソートのランチャーの意図が発生し、そのアクティビティのonRestartでコールバックを取得します。

しかし、ホームキーを長押しして起動すると、onRestartにコールバックが提供されません。

また、ユーザーが通知の通知バーを押してアプリを起動した場合はどうなりますか? = 1

loginCounter場合 - どのように私は、ユーザーが、自分のonResume呼び出しで通知

+0

"onRestart" - あなたはonResume()を意味しますか? –

+2

by onRestart私はonResumeではなくonResumeを意味します。なぜなら、onResumeは最終的にonStartの後に呼び出されるからです。 – pankajagarwal

答えて

1

をクリックしたあなたのにloginCounter + = 1を設定する前に、アプリがバックグラウンドやフォアグラウンドにもともとあったかどうかを区別行います== 0 =>ログインダイアログを表示する。

通知バーで、IntentActivityと呼ぶように設定しましたか?ブール値としてパラメータ "isCalledByNotificationBar"を追加するだけです。

+1

サイドノート上:HomeKeyの動作を上書きすることはできません。 Androidソースコードを変更してターゲットデバイスにデプロイする(可能性が低い)場合にのみ可能です。 –

+2

迅速な返信をありがとうが、この状況を考慮していただきありがとうございます。私はアクティビティA1を起動します。そのため、onResume ** loginCounter = 1 **です。 A1から私はA2を起動し、A1のポーズはloginCounter = 0と呼ばれます。これですべてのアクティビティが起動した後、パスワードの入力を求められます。さらに、A1の上に他のダイアログが表示されると、パスワードダイアログが表示されます。私はあなたが問題を願っている – pankajagarwal

+0

しかし、あなたは自分が言った "アプリは、バックグラウンドからフォアグラウンドに来るたびにパスワードを入力する必要があります"正確に何が起こっているのです。 –

1

onResumeが機能しない場合は、onWindowFocusChanged(boolean)はどうですか?

+1

申し訳ありません私はonResumeで何をすべきかを知りませんでしたが、今私はonWindowFocusChanged(ブール値) – pankajagarwal

1

おそらく、アプリケーションのアクティビティが最後に一時停止されたときに更新するタイムスタンプから30秒未満であったかどうかを確認するために、アプリケーションに再入力する必要があります。パスワードがそれより少ない場合は、パスワードを要求しないでください。この短い時間ウィンドウは、ログアウトしたくないいくつかのトランジションでスムーズになるかもしれないと考えています。

関連する問題