2016-07-21 7 views
0

例A、B、C、Dなどのアクティビティがあります アクティビティDを終了し、スタックをクリアして、アクティビティCに戻るのを避け、アクティビティBに戻るにはどうすればいいですか? ください、 Cの結果とCのonActivityResultのDの開始はDからCから開始し、もう一度finishを呼び出します)Android clearアクティビティバックスタック

答えて

0

FLAG_ACTIVITY_CLEAR_TOPフラグを使用できます。

ここでAndroid documentationを参照してください。

これが設定されていて、起動されているアクティビティがすでに現在のタスクで実行されている場合は、そのアクティビティの新しいインスタンスを起動するのではなく、それは閉じられ、このインテントは新しいインテントとしての古いアクティビティに配信されます。例えば

、活動からなるタスクを考慮する:A、B、C、D Dは活性Bの 成分に解決を意図してstartActivity()を呼び出す場合、C及びDは、完成したであろうその行動は永久的な基盤の上に必要とする、またはそれが条件付きかどうかわからない、B.

0

イムをA:とBは現在のスタックであることを、その結果、 に与えられたテントを受け取ります。最初のケースでは、あなたのDマニフェスト活動宣言の次の行に追加することができます。

android:parentActivityName="com.example.B" 

を後者の場合は、あなたが活動にD上書きすることができます - ここからActivity BonBackPressed()方法と起動が現在の状況に依存します。