为推送通知构建片段 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();
}
我正在使用 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();
}