将结果返回到不是最后一个活动的上一个活动

时间:2011-05-13 08:10:34

标签: android android-activity stack

如果只涉及两项活动,则startActivityForResult()onActivityResult将完美无缺。但是,如果存在超过2个活动,我该如何处理? 例: 活动A启动一个新的活动B,它启动活动C,开始活动D.我想将D的结果返回到活动A以及完成活动B和C.我该怎么做?我可以遍历活动堆栈并完成所需的活动,还是必须启动活动A的新实例?

简而言之:A-> B-> C-> D必须返回A,结果为D.

2 个答案:

答案 0 :(得分:2)

回头关闭每个活动将是一种很好的做事方式,但是如果你需要从一个活动跳到另一个活动并且你没有使用TabHost,你可以看看APIDemo重新订购代码

它以这种方式从活动(第4个)跳到之前打开的第(2个):

Intent intent = new Intent(ReorderFour.this, ReorderTwo.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

答案 1 :(得分:1)

在我看来,最合乎逻辑的方式是让活动对此负责。

  1. D将d返回C.
  2. C将d和c返回B.
  3. B将b,c,d返回给A。
  4. 这将强制您在明确地在此周期中没有发生活动时考虑错误条件。