为了账号安全,请及时绑定邮箱和手机立即绑定

使用碎片清理回栈

使用碎片清理回栈

慕妹3146593 2019-12-10 13:04:48
我将Android应用程序移植到蜂窝上,为了使用片段,我做了很大的重构。在以前的版本中,当我按下“主页”按钮时,我通常会执行一次操作ACTIVITY_CLEAR_TOP以重置后退堆栈。现在我的应用只是一个带有多个片段的Activity,因此当我按下Home按钮时,我只是替换了其中的一个片段。如何不用startActivity与ACTIVITY_CLEAR_TOP标志一起使用就清除我的后堆栈?
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

为@Warpzit的评论提供答案,并使其他人更容易找到。


采用:


fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);



查看完整回答
反对 回复 2019-12-11
?
莫回无

TA贡献1865条经验 获得超7个赞

充分尊重所有有关方面;看到你们中有多少人可以用一个简单的方法清除整个碎片堆,我感到非常惊讶


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) {    

    fm.popBackStack();

}



查看完整回答
反对 回复 2019-12-11
  • 3 回答
  • 0 关注
  • 374 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信