删除所有片段,以便 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();
    }
}

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

我在此处附加了删除片段的代码。调试显示fragment确实会随着每个循环而更改。

谁能建议这里发生了什么?

您可以覆盖背压方法并关闭应用程序,如下所示:

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

最新更新