删除所有片段,以便onBackPressed关闭应用

时间:2017-10-05 17:16:51

标签: android fragment onbackpressed

我目前有一个Android应用程序流动A - > B - > C - > D在活动1中启动。

在D之后,我启动了活动2并运行以下代码以从堆栈中删除所有片段。

List<Fragment> fragments = getSupportFragmentManager().getFragments();
if (fragments != null) {

    for (Fragment fragment : fragments) { 
      getSupportFragmentManager().beginTransaction().remove(fragment).commit();
    }
}

我的问题是当我从活动2返回到活动1时,是当我按下后退键时片段C动画回到屏幕。片段D确实删除但A B C没有删除。我希望应用程序在活动1的背压下关闭。

我附上了删除我的片段的代码。调试显示fragment确实随每个循环而变化。

有人可以告知这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

您可以覆盖后退方法并关闭应用,如下所示:

@Override
public void onBackPressed() {
        finish(); // finish activity
}