【问题标题】:Android - Finish intermediate activityAndroid - 完成中间活动
【发布时间】:2016-09-19 16:46:59
【问题描述】:

我有一个主活动 (A),它启动了一个新活动 (B),它调用了第三个活动 (C)。当按下活动 C 上的按钮时,我想返回活动 A 并关闭活动 B。

架构:

A -(打开)> B -(打开)> C

在活动C上按下按钮时,我只想拥有活动A,所以我需要杀死B和C。

在活动 C 上,我可以直接调用 finish()

如何处理活动 B?

【问题讨论】:

    标签: android android-activity activity-finish


    【解决方案1】:

    当您从 Activity B 打开 Activity C 时,在 Activity B 上调用 finish(),这样当您在 Activity C 上调用 finish() 时,它将转到 Activity A 而不是 B,因为 B 不再是堆栈了。

    使用以下意图标志从 Activity C 调用 Activity A。

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    

    这些标志将清除整个 Activity 堆栈

    【讨论】:

    • 1.如果用户想要更改 Activity B 中填写的一些详细信息并为此按下 Activity C 的返回按钮怎么办? 2. 如果在 Activity A 之前队列中还有其他活动(例如 X -> Y -> A -> B -> C)并且用户只想完成活动 B 和 C 怎么办?
    【解决方案2】:

    所以你想从另一个活动中完成一个活动,检查这两个答案

    How to finish an activity from other activity

    What is the right way to clear background activity/activites from stack ?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 2011-06-13
      • 2012-03-22
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      相关资源
      最近更新 更多