清除片段后栈编程的最佳方法是什么?
我只使用一个活动和一组片段实现了屏幕导航.我想有一个方法将用户带到登录屏幕(当注销超时到期时)并清除所有片段历史记录,最好的方法是什么?我在这里找到的答案很少但我不知道哪个是最好的...提前谢谢!
目前我正在使用这个
public void clearBackStack() {
FragmentManager fragmentManager = holder.getSupportFragmentManager();
while (fragmentManager.getBackStackEntryCount() != 0) {
fragmentManager.popBackStack(null, 0);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,有时我会出现OutOfMemoryException
Reg*_*itz 11
这是一个非常古老的问题.无论如何,我尝试了你的代码,看起来你有一个无限循环.
popBackStack(null, 0)搜索具有null标记的片段,该片段永远不会被找到.while循环将循环直到内存耗尽.另一个问题popBackStack是pop不一定立即执行,因此while循环可能会运行一段时间.
如果要删除后端堆栈中的碎片而不管标记或ID,请fragmentManager.popBackStackImmediate()改用.
| 归档时间: |
|
| 查看次数: |
9609 次 |
| 最近记录: |