我正在创建一个流程大致如下的应用程序:
现在,我让每个Activity调用其他Activity for results,然后它将结果一直传递回堆栈,因为它返回到Activity A.
有没有办法跳过这个,因为我想要的是Activity D
的结果直接到达活动A?
请注意,用户仍然可以通过每个活动向后导航(使用后退按钮),但如果他们在活动D中明确保存该项目,我希望它直接跳转到活动A.
答案 0 :(得分:1)
我建议只调用活动(不使用* ForResult)调用,然后让活动D调用带有数据的INTENT_ADD_ITEM的活动A,然后让活动A添加项目。
希望这会有所帮助......
答案 1 :(得分:1)
只是为了让人们可以从我后来学到的东西中受益......
解决此问题的关键是使用带有Intent的标志,在本例中使用FLAG_ACTIVITY_CLEAR_TOP
。其他标志在控制UI流程方面也很有用。
尝试通过活动链接startActivityForResult()来解决这个问题是一个坏主意。这意味着很难改变应用程序的流程。