0

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

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

提前致谢。

4

1 回答 1

-1

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

于 2013-09-24T06:28:51.947 回答