好的,所以我做了一些研究,看起来有相当多的问题(例如here),但没有一个答案似乎能解决我的特定问题。
简单地说,我们有三个活动的背堆:A - > B - > C.现在,如果用户在活动C(前台活动)中执行某个动作,我希望能够从后堆栈中删除活动B并将其替换为其他活动D,给予A - > D - > C.有没有办法在不中断活动C的情况下这样做?
提前致谢。
答案 0 :(得分:-1)
好的,所以似乎没有办法像我最初设想的那样做。感谢@AlexBcn在评论中提出的建议,我确实找到了一个“hacky解决方案”。当用户处于活动“B”(因此堆栈当前是A - > B)并按下导致活动“C”的按钮开始时我们销毁活动B.所以我们的堆栈现在是A - > C.然后我跟踪C所处的“状态”活动(因为这决定了我希望之前的活动是什么)。然后我重写onBackPressed
方法,以便在活动C被销毁时创建一个新活动(即活动“D”)以复制我想要的效果。