この動作を実現する方法:
アクティビティAがあるとしましょう
次に、フローを開始し、アクティビティA、B、C、Dを実行します
Dで成功すると、アクティビティEが開始され、スタックはA、B、C、D、Eになります。
ここで必要なのは、スタックがA、Eになるため、B、C、Dが中央から削除されることです。
この動作を実現する方法:
アクティビティAがあるとしましょう
次に、フローを開始し、アクティビティA、B、C、Dを実行します
Dで成功すると、アクティビティEが開始され、スタックはA、B、C、D、Eになります。
ここで必要なのは、スタックがA、Eになるため、B、C、Dが中央から削除されることです。
ArrayList<Activity> activities =new ArrayList<Activity>();
それを作成し、これにすべてのアクティビティを追加します。それらを閉じる必要がある場合は、次のように入力します。
activities.get(YOUR_ITEM_INDEX).finish();
私はこれが問題を解決するだろうと思います
結果について教えてください
アクティビティCをBから開始する場合はBを終了します。たとえば、DをCから開始する場合はCを終了し、Eを開始する場合はDを終了します。最後に、スタックにはアクティビティAとEのみが含まれます。
B、C、D、およびEは、結果からのアクティビティで開始し、OnActivityResultメソッドで終了する必要があります。次に、Eアクティビティの戻るボタンをfinish()でオーバーライドする(またはボタンをクリックしたときにEアクティビティを終了する)と、トリックが実行されます。Eから戻ると、Aに戻ります。
アクティビティが取ることができる履歴パスを決定しfinish()
、ユーザーがアクティビティスタックを「巻き戻す」必要があるアクションを実行したときに呼び出す必要があります。
FLAG_ACTIVITY_NO_HISTORY / FLAG_ACTIVITY_CLEAR_TOPandroid:noHistory="true"
を確認するか、AndroidManifest.xmlで使用することもできます。
http://developer.android.com/reference/android/content/Intent.htmlを参照FLAG_ACTIVITY_CLEAR_TOP
してください。それはあなたのニーズに合っていますか?