Android back stack-返回到back stack中的某个活动

Android back stack-返回到back stack中的某个活动,android,android-intent,back-stack,Android,Android Intent,Back Stack,我有活动A->B->C->D。如何从活动D中打开现有的B,清除C和D?我将以A->B结束。我不想重新创建一个新的B。您可以在清单文件中的SingleTop状态模式中声明目标活动的活动B,如 <activity android:name="YourActivityName" android:launchMode="singleTop"></activity> 然后导航到此活动的startActivity将结束C和D,并且不会开始新的活动B在处理完C和D后,您可以立即完成这

我有活动A->B->C->D。如何从活动D中打开现有的B,清除C和D?我将以A->B结束。我不想重新创建一个新的B。

您可以在清单文件中的SingleTop状态模式中声明目标活动的活动B,如

<activity android:name="YourActivityName" android:launchMode="singleTop"></activity>

然后导航到此活动的startActivity将结束C和D,并且不会开始新的活动B

在处理完C和D后,您可以立即完成这些活动

我认为您必须使用和

根据该文件:

考虑一个由以下活动组成的任务:a、B、C、D startActivity的目的是解决 活动B,然后C和D将完成,B将收到给定的 意图,导致堆栈现在为:A,B

上面示例中当前正在运行的活动B实例将 要么接收你从这里开始的新意图 onNewIntent方法,或使用新的 意图如果已将其启动模式声明为多个 默认设置,并且您没有在同一系统中设置标志\活动\单个\顶部 意图,然后它将被完成并重新创建;对于所有其他发射 模式,或者如果设置了标志\u活动\u单个\u顶部,则此意图将被忽略 已传递到当前实例的onNewIntent


如问题所述,我从D呼叫B。我不退出D和C到达B。哦,对不起,我错过了阅读。在这种情况下,您只需要向活动B添加回调并使用恢复活动状态。您详细说明了向活动B添加回调吗?使用resume表示活动的状态,你是说onResume?它似乎没有任何区别。这是正确的答案。从活动D启动活动B时,添加这两个标志。这会给你想要的行为。谢谢@DavidWasser:-谢谢,就是这样。