Android terminarte chid活动-就像根目录的流行音乐

Android terminarte chid活动-就像根目录的流行音乐,android,android-activity,Android,Android Activity,如何在安卓系统中进行pop植根。我有和ActivityA,然后启动ActivityB,然后启动ActivityC,最后启动ActivityD。如果使用“后退”按钮,我想按正常方式转到D->C->B->A。但是,如果用户在ActivityD中单击按钮,我想销毁D、C和B,然后返回a。我知道这必须存在,但找不到它。知道这可以通过片段来完成,但是由于B、C和D所做的事情,它们确实需要作为活动保留。您可以使用startActivityForResult 在活动A中启动活动B时,传递一个代码,执行与在B中

如何在安卓系统中进行pop植根。我有和ActivityA,然后启动ActivityB,然后启动ActivityC,最后启动ActivityD。如果使用“后退”按钮,我想按正常方式转到D->C->B->A。但是,如果用户在ActivityD中单击按钮,我想销毁D、C和B,然后返回a。我知道这必须存在,但找不到它。知道这可以通过片段来完成,但是由于B、C和D所做的事情,它们确实需要作为活动保留。

您可以使用startActivityForResult

在活动A中启动活动B时,传递一个代码,执行与在B中启动C和在C中启动D相同的操作

当您在D中启动按钮时,使用setResultCODE和finish返回到C中的onActivityResult。然后在那里捕获该代码,并在那里启动相同的setResult和finish,依此类推,直到返回到A


有几种方法可以实现这一点,但这应该对您有效。

intent.setFlagsFLAG\u ACTIVITY\u REORDER\u TO\u FRONT\FLAG\u ACTIVITY\u CLEAR\u TASK;当您从D启动活动A时,请使用这些标志。它将清除整个活动堆栈,并将活动A放在前面(如果存在),否则它将创建活动A。我没有测试它,这就是为什么它出现在注释中而不是答案中。让我知道它是否有效。[应该有效]。在清单中,您必须为活动A添加以下内容:android:launchMode=singletop您是否检查过:我想这就是我要找的!谢谢