Android fragments 构建片段后堆栈

Android fragments 构建片段后堆栈,android-fragments,Android Fragments,我是Android/编程新手,目前很难让我的应用程序直接引导用户进入带有向后导航的选项卡中的第二个片段(点击后退按钮应该加载第一个片段,而不是关闭应用程序) 我的应用程序由一个片段活动和几个选项卡组成,每个选项卡都有一个容器片段和一些其他嵌套片段。我这样做是因为我希望每个选项卡都有自己的后堆栈。通常(使用我下面的拙劣图表)如果用户想进入frag 2B,他们会选择选项卡B,然后选择frag 1B,然后选择frag 2B 表A->框架1A->框架2A 选项卡B->frag 1B->frag 2B 但

我是Android/编程新手,目前很难让我的应用程序直接引导用户进入带有向后导航的选项卡中的第二个片段(点击后退按钮应该加载第一个片段,而不是关闭应用程序)

我的应用程序由一个片段活动和几个选项卡组成,每个选项卡都有一个容器片段和一些其他嵌套片段。我这样做是因为我希望每个选项卡都有自己的后堆栈。通常(使用我下面的拙劣图表)如果用户想进入frag 2B,他们会选择选项卡B,然后选择frag 1B,然后选择frag 2B

表A->框架1A->框架2A

选项卡B->frag 1B->frag 2B

但是,当收到新消息通知时,我的片段活动中有一个广播接收器,它会显示一个警报对话框,询问用户是否希望查看新消息。选择“是”应使用户直接从应用程序中的任何位置(例如选项卡A、框架2A)进入消息片段(比如框架2B)。我可以在选择“是”时添加一个片段事务,虽然这会直接将用户带到frag 2B,但显然frag 1B尚未添加到后堆栈中,因此当用户点击后退按钮而不是看到frag 1B时,应用程序将关闭。我认为它也不适合放置事务,因为我的容器片段是使用getChildFragmentManager()创建嵌套片段的地方

除了一篇关于使用TaskStackBuilder创建带有活动的“人工”后台堆栈的Android文章之外,我很难找到任何与此相关的信息。虽然这和我想做的差不多,但看起来它只能用于构建活动的后台堆栈,而不是片段


有人能给我指出正确的方向吗?比如说,网上的文章/教程,或者做过类似事情的经验吗?

有很多方法可以解决这个问题,但最好还是先取消“后退”按钮。这将允许您控制用户按下后退按钮时发生的情况

@Override
public void onBackPressed() {       
        if (on frag 2B && some condition) {
            //send user to frag 1B
        } else {
            super.onBackPressed();
        }
}

谢谢你的建议。我将在我的代码中实现类似的东西,并让您知道我是如何做到的。