在Android中返回结果时,如何跳过活动堆栈的一部分?

在Android中返回结果时,如何跳过活动堆栈的一部分?,android,Android,我正在制作一个流程大致如下的应用程序: 用户在主屏幕上以空列表开始,点击菜单,然后转到“添加项目”。(活动A) 用户被赋予一个新的活动,允许他们指定搜索条件,然后点击“go”进行搜索。(活动B) 用户获得结果列表,并可以单击其中一个以查看更多详细信息。(活动C) 用户可以看到项目的详细信息,并可以使用菜单项将其保存到活动a中的列表中。(活动D) 现在,我让每个活动互相调用另一个活动以获取结果,然后在返回到活动A时,它将结果一路传回堆栈 有没有办法跳过这一步,因为我只想在Activity D中得到

我正在制作一个流程大致如下的应用程序:

  • 用户在主屏幕上以空列表开始,点击菜单,然后转到“添加项目”。(活动A)
  • 用户被赋予一个新的活动,允许他们指定搜索条件,然后点击“go”进行搜索。(活动B)
  • 用户获得结果列表,并可以单击其中一个以查看更多详细信息。(活动C)
  • 用户可以看到项目的详细信息,并可以使用菜单项将其保存到活动a中的列表中。(活动D)
  • 现在,我让每个活动互相调用另一个活动以获取结果,然后在返回到活动A时,它将结果一路传回堆栈

    有没有办法跳过这一步,因为我只想在
    Activity D
    中得到一个结果,直接到达Activity a


    请注意,用户应该仍然能够在每个活动中向后导航(使用后退按钮),但如果他们在活动D中显式保存该项,我希望它直接跳到活动a。

    我建议只调用活动(而不使用*ForResult)调用,然后让活动D调用带有意图的活动A,然后让活动A添加数据项


    希望这有助于…

    让人们能从我后来学到的东西中受益

    解决此问题的关键是有意使用标志,在本例中使用。其他标志在控制UI流时也很有用

    试图通过活动链接startActivityForResult()来解决此问题是个坏主意。这意味着很难更改应用程序的流程