我有一个活动 A,它调用片段 Bf,它调用片段 Cf。我希望在调用 Cf 时将 Bf 放在后台堆栈中,以便用户可以导航回它。但是,如果在 Cf 中按下特定按钮,我希望将 Bf 从后台堆栈中删除。这可能吗?
我看到有一个 popBackStack() 函数。但是,我对这将如何工作感到有些困惑。使用此功能是否安全?是否有可能在后台堆栈的 Bf 之后插入来自不同应用程序的活动?
另外,有什么方法可以改变 backstack 上片段的 savedInstanceState 吗?
我只是不知道如何使用模拟器对 backstack 进行健壮的测试。
原文由 user2085335 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以按名称弹出片段。在将片段添加到后台堆栈时,只需给它们一个名称。
然后在 Fragment_C 中,使用名称弹出回栈,即
fragB
并包括POP_BACK_STACK_INCLUSIVE