代码之家  ›  专栏  ›  技术社区  ›  Dan Lew

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

  •  0
  • Dan Lew  · 技术社区  · 16 年前

    1. 用户在主屏幕上以空列表开始,点击菜单,然后转到“添加项目”。(活动A)
    2. 用户被赋予一个新的活动,允许他们指定搜索条件,然后点击“go”进行搜索(活动B)
    3. 用户可以看到项目的详细信息,并可以使用菜单项将其保存到活动a中的列表中(活动D)

    现在,我让每个活动互相调用另一个活动以获取结果,然后在返回到活动A时,它将结果一路传回堆栈。

    Activity D

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

    2 回复  |  直到 11 年前
        1
  •  1
  •   Scott    16 年前

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

        2
  •  1
  •   Dan Lew    16 年前

    只是为了让人们能从我后来学到的东西中受益。。。

    解决此问题的关键是有意使用标志,在本例中使用 FLAG_ACTIVITY_CLEAR_TOP

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