2

この動作を実現する方法:

アクティビティAがあるとしましょう

次に、フローを開始し、アクティビティA、B、C、Dを実行します

Dで成功すると、アクティビティEが開始され、スタックはA、B、C、D、Eになります。

ここで必要なのは、スタックがA、Eになるため、B、C、Dが中央から削除されることです。

4

5 に答える 5

2
ArrayList<Activity> activities =new ArrayList<Activity>();

それを作成し、これにすべてのアクティビティを追加します。それらを閉じる必要がある場合は、次のように入力します。

activities.get(YOUR_ITEM_INDEX).finish();

私はこれが問題を解決するだろうと思います

結果について教えてください

于 2012-07-18T09:59:59.390 に答える
0

アクティビティCをBから開始する場合はBを終了します。たとえば、DをCから開始する場合はCを終了し、Eを開始する場合はDを終了します。最後に、スタックにはアクティビティAとEのみが含まれます。

于 2012-07-18T09:58:58.617 に答える
0

B、C、D、およびEは、結果からのアクティビティで開始し、OnActivityResultメソッドで終了する必要があります。次に、Eアクティビティの戻るボタンをfinish()でオーバーライドする(またはボタンをクリックしたときにEアクティビティを終了する)と、トリックが実行されます。Eから戻ると、Aに戻ります。

于 2012-07-18T09:59:47.043 に答える
0

アクティビティが取ることができる履歴パスを決定しfinish()、ユーザーがアクティビティスタックを「巻き戻す」必要があるアクションを実行したときに呼び出す必要があります。

FLAG_ACTIVITY_NO_HISTORY / FLAG_ACTIVITY_CLEAR_TOPandroid:noHistory="true"を確認するか、AndroidManifest.xmlで使用することもできます。

于 2012-07-18T10:01:24.667 に答える
0

http://developer.android.com/reference/android/content/Intent.htmlを参照FLAG_ACTIVITY_CLEAR_TOPしてください。それはあなたのニーズに合っていますか?

于 2012-07-18T10:02:14.643 に答える