Android 如何在不弹出片段的情况下清除fragmentManager后台堆栈?

Android 如何在不弹出片段的情况下清除fragmentManager后台堆栈?,android,fragment,back-stack,fragmentmanager,Android,Fragment,Back Stack,Fragmentmanager,简单的问题,但似乎无法回答。。。 如何在不弹出片段的情况下清除fragmentManager后台堆栈 我是这样理解的: Back stack entries=使用addToBackStack命令以前保存的事务列表。 例如:“用片段2替换片段1” popBackStack=执行上次保存的事务反转。 例如:“用片段1替换片段2” 假设我完成了第一个事务:F1->F2,并将该事务添加到后堆栈中。当我现在按下后退按钮时,F2->F1将发生 好吧……但是 我已经改变主意了,我想把这堆东西清理干净。 我希望

简单的问题,但似乎无法回答。。。 如何在不弹出片段的情况下清除fragmentManager后台堆栈

我是这样理解的:

Back stack entries=使用addToBackStack命令以前保存的事务列表。 例如:“用片段2替换片段1”

popBackStack=执行上次保存的事务反转。 例如:“用片段1替换片段2”

假设我完成了第一个事务:F1->F2,并将该事务添加到后堆栈中。当我现在按下后退按钮时,F2->F1将发生

好吧……但是

我已经改变主意了,我想把这堆东西清理干净。 我希望用户使用F2片段,但当他/她按下后退按钮时,活动应该关闭,就像后堆栈是空的一样

我需要像这样的东西:

for(int i=0;i<getFragmentManager().getBackStackEntryCount();i++){
    getFragmentManager().getBackStackEntryAt(i).remove();
}

for(inti=0;i试试这个,可能会有帮助

public void clearBackstack() {

    BackStackEntry entry = getSupportFragmentManager().getBackStackEntryAt(
            0);
    getSupportFragmentManager().popBackStack(entry.getId(),
            FragmentManager.POP_BACK_STACK_INCLUSIVE);
    getSupportFragmentManager().executePendingTransactions();

}

我以前找到过它,但它并不是我想要的。我认为backbackback就像一个列表,我可以删除任何我想要的行。。。