如果只涉及两项活动,则startActivityForResult()
和onActivityResult
将完美无缺。但是,如果存在超过2个活动,我该如何处理?
例:
活动A启动一个新的活动B,它启动活动C,开始活动D.我想将D的结果返回到活动A以及完成活动B和C.我该怎么做?我可以遍历活动堆栈并完成所需的活动,还是必须启动活动A的新实例?
简而言之:A-> B-> C-> D必须返回A,结果为D.
答案 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)
在我看来,最合乎逻辑的方式是让活动对此负责。
这将强制您在明确地在此周期中没有发生活动时考虑错误条件。