为推送通知构建片段 backStack

Build fragment backStack for push notification

我正在使用 FCM 在用户点击状态栏中的通知时显示片段。

当前的应用程序流程是这样的 MainActivity(片段 A -> 片段 B -> 片段 C)。

然而,当用户点击通知时(无论应用是否 运行),我想显示 Fragment C,同时仍提供适当的后退导航,因此在按下后退键时,用户将被带到 Fragment B 并且再次按下片段 A。

我知道活动有 TaskStackBuilder 用于此目的,但在显示我的通知之前,我找不到任何用于构建 backStack 片段的内容。

知道如何构建堆栈吗?我尝试将所有片段添加到事务中,然后在添加片段 C 之前提交,但我在第二次提交时得到 IllegalStateException: commit already called

片段堆栈的手动处理很困难。我建议您查看 Navigation Component。它将允许通过适当的返回堆栈处理构建显式深度链接 (NavDeepLinkBuilder class)。

显示您的代码。可能您必须为每个片段创建新事务并提交操作。使用此方法添加 A、B 和 C:

    public void addFragmentOnTop(Fragment fragment) {
        getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.container, fragment)
            .addToBackStack(null)
            .commit();
    }