2011-09-17 16 views
1

私は単純な問題があります。私のアプリでは、私は3つのアクティビティA、B、Cを持っています。アクティビティAがメインアクティビティです。アクティビティAのいくつかのアクションではアクティビティBに移動し、その後にはアクティビティCに移動します。アクティビティCにいるとき、ホームボタンを押してホームスクリーンが表示されました。今度は再びアプリアイコンをクリックすると、アクティビティCが再び開始されます。しかし、私はパスワードを尋ねる必要があるので、アクティビティAが来るはずです。ホームボタンを押したときにすべてのアクティビティを終了し、アプリアイコンを再度クリックするとログインアクティビティ、つまりアクティビティAが表示されるはずです。誰か私にいくつかの解決策を教えてもらえますかアンドロイドの再注文の仕組みは?

答えて

1

あなたの発射の意図は次のように別の活動から行く場合は----->

テントの意図=新しいテント(これ、B.class)。 startActivity(インテント);

、その後、すべてのものは罰金でしょう---->あなたのコードにこの----->

テントの意図=新しいテント(のような

addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONTを)この事を追加this、B.class).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivty(インテント);

注--->ここ(これ)はあなたのA活動を意味します。

0

活動のライフサイクル: http://developer.android.com/reference/android/app/Activity.html

あなたの活動に何が起こるかを認識するためにこれらのコールバック関数を使用します。ユーザーがホームボタンを押すと、アクティビティCでfinish()を呼び出します。アクティビティBはCが終了して終了することを再調整します()。

0

あなたがonPause状態(ユーザーが自宅を押すとき)である間あなたのアプリを制御することができます。

protected void onPause(){ 
    super.onPause(); 

} 

ここでは、必要なものをすべて実行できます。

もう一つの方法は、「ホーム」ボタンを傍受することで、アプリがバックグラウンドで行く前に、それはすぐにlifecycle of an activityのオフに基づいて、この答えの

0

多くのアクティビティAに戻ってきます。

ユーザーが少なくともホームボタンを押すと、アクティビティが一時停止します。これを検出するには、onPause()関数を使用します。この時点からできることはいくつかありますが、最も基本的なことはアクティビティを終了することだけです。C. finish()を呼び出すとアクティビティが終了します。これにより、通常どおりアクティビティーをナビゲートすることができますが、終了するとアクティビティーを終了させます。

アクティビティが複雑になると、メモリが必要なような理由でonPause()が呼び出されることがあります。その人がサブ機能にあるかどうかを検出するために、余分なロジックを追加する価値があります。

代わりに、関数onRestart()を使用して、アクティビティを終了するだけです。これは奇妙なことのいくつかを補うかもしれない。

0

マニフェストファイルが変更されました。アクティビティBとCのインテントフィルタをランチャとして削除しました。今私がアプリのアイコンを押すたびに私はログイン活動に達する。