【问题标题】:How do you skip parts of an Activity stack when returning results in Android?在 Android 中返回结果时如何跳过部分 Activity 堆栈?
【发布时间】:2009-10-16 21:35:02
【问题描述】:

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

  1. 用户从主屏幕开始,列表为空,点击菜单,然后转到“添加项目”。 (活动 A)
  2. 给用户一个允许他们指定搜索条件的新活动,然后点击“开始”进行搜索。 (活动 B)
  3. 用户获取结果列表,并且可以单击其中一个查看更多详细信息。 (活动 C)
  4. 用户查看项目的详细信息,并可以使用菜单项将其保存到活动 A 中的列表中。(活动 D)

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

有没有办法跳过这个,因为我只想让Activity D 中的结果直接进入活动 A?

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

【问题讨论】:

    标签: android


    【解决方案1】:

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

    希望这会有所帮助...

    【讨论】:

      【解决方案2】:

      只是为了让人们可以从我后来学到的东西中受益......

      解决这个问题的关键是使用带有 Intent 的标志,在本例中使用 FLAG_ACTIVITY_CLEAR_TOP。其他标志在控制 UI 的流程方面也很有用。

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

      【讨论】:

        猜你喜欢
        • 2011-05-05
        • 1970-01-01
        • 1970-01-01
        • 2012-06-11
        • 1970-01-01
        • 2020-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多