【发布时间】:2019-09-19 10:49:03
【问题描述】:
我一直在尝试解决有关后台管理的最奇怪的问题。
目标是有如下逻辑(片段用字母A、B、C表示):
A -> B, B -> C ,当回压时,C -> A
由于C可以是不同的片段,并且在C和backPressed中时,片段B永远不会出现,我将转换A->B添加到backstack并且没有添加B->C,只是将B替换为C,所以当我做backPress,C去A。
这在第一次时完美运行 - 行为符合预期,但是当我连续第二次尝试时,应用程序崩溃:
getSupportFragmentManager().popBackStackImmediate()
,抛出异常:
java.lang.IllegalStateException: Fragment already added: FragmentC
...
我尝试用getSupportFragmentManager().popBackStack 替换,但只是在几纳秒后抛出错误。
在尝试从堆栈中弹出片段时,是否有任何原因会引发添加错误?关于如何解决这个问题的任何想法?
提前非常感谢
【问题讨论】:
-
您添加或更新片段了吗?如果你每次都添加那么就会发生
-
显示一些代码。
标签: android android-fragments back-stack