猿问

使用碎片清理回栈

我将Android应用程序移植到蜂窝上,为了使用片段,我做了很大的重构。在以前的版本中,当我按下“主页”按钮时,我通常会执行一次操作ACTIVITY_CLEAR_TOP以重置后退堆栈。

现在我的应用只是一个带有多个片段的Activity,因此当我按下Home按钮时,我只是替换了其中的一个片段。如何不用startActivityACTIVITY_CLEAR_TOP标志一起使用就清除我的后堆栈?


慕妹3146593
浏览 385回答 3
3回答

蛊毒传说

为@Warpzit的评论提供答案,并使其他人更容易找到。采用:fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

莫回无

充分尊重所有有关方面;看到你们中有多少人可以用一个简单的方法清除整个碎片堆,我感到非常惊讶fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);根据Android文档(关于name论点-所主张的工作建议中的“空”)。如果为null,则仅弹出最高状态现在,我的确意识到我不了解您的特定实现(例如,在给定的时间点,您在后台堆栈中有多少个条目),但是当期望得到一个明确定义的答案时,我会全力以赴在更广泛的设备和供应商中的行为:(供参考,与此同时)FragmentManager fm = getFragmentManager(); // or 'getSupportFragmentManager();'int count = fm.getBackStackEntryCount();for(int i = 0; i < count; ++i) {&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; fm.popBackStack();}
随时随地看视频慕课网APP

相关分类

Android
我要回答