【问题标题】:Android: Changing task back stackAndroid:更改任务回栈
【发布时间】:2013-09-24 14:28:51
【问题描述】:

好的,所以我做了一些研究,看起来有很多关于这个的问题(例如here),但似乎没有一个答案能解决我的特定问题。

简单地说,假设我们有三个活动的后堆栈:A -> B -> C。现在,如果用户在活动 C(前台活动)中执行某个操作,我希望能够从返回堆栈并将其替换为其他活动 D 给出 A -> D -> C。有没有办法在不中断活动 C 的情况下做到这一点?

提前致谢。

【问题讨论】:

  • AFAIK,没有办法做到这一点。很好,你举个例子说明你为什么需要这个,也许我们可以帮助找到解决方案?
  • 要从后台堆栈中删除 B,请查看 this。如果前台活动是 C,您可以覆盖函数onBackPressed()(按下后退按钮时执行)并启动活动 D。

标签: android android-activity


【解决方案1】:

好的,所以似乎没有办法像我最初设想的那样做到这一点。感谢@AlexBcn 在评论中给出的建议,我确实找到了一个有点“骇人听闻的解决方案”。当用户处于活动“B”(因此堆栈当前为 A -> B)并按下一个按钮导致活动“C”启动时,我们销毁活动 B。所以我们的堆栈现在是 A -> C。然后我跟踪活动 C 处于什么“状态”(因为这决定了我想要上一个活动是什么)。然后我重写 onBackPressed 方法,以便在销毁活动 C 时创建一个新活动(即活动“D”)以复制我想要的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2015-12-14
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多