需要在 onBackPressed 中使用 popBackStack

Need for popBackStack in onBackPressed

请帮助我了解调用 "onBackPressed" 时返回堆栈的本机工作方式。我注意到,即使在视觉上它回到了前一个片段,但应该弹出的片段(我退出的片段)仍在后堆栈中。这是为什么? 然后我将不得不求助于

    @Override
    public void onBackPressed() {
        if(getFragmentManager().getBackStackEntryCount() > 0)
             getFragmentManager().popBackStack();
    }

这似乎违反直觉。 那么位于不在返回堆栈顶部的片段上是真的吗?那么堆栈不多...

编辑:澄清一下,我的问题是为什么 onBackPressed 还没有弹出返回堆栈并且需要额外的调用来弹出它作为解决方法?如果只是这样的话我很好,但我想确认一下。

添加以下行:

addToBackStack("Some String").commit();

你可以找到解决方案 Here.

Android 应用有一堆活动。当在 activity 上调用 onBackPressed 时,它会弹出前一个 activity 并完成当前

如果你有一个带有片段的activity,你将有另一个堆栈,activity的片段堆栈,如果你按照solution建议的方式覆盖onBackPressed,你可以控制它你的 activity 直到他们的所有片段都被弹回

才完成