当用户点击状态栏中的通知时,我正在使用 FCM 显示 fragment 。
当前的应用程序流是这个 MainActivity
( fragment A -> fragment B -> fragment C)。
但是,当用户点击通知时(无论应用程序是否正在运行),我想显示 Fragment C,同时仍然提供正确的后退导航,因此在按下后退键时,用户再次按下时将被带到 Fragment B 和 Fragment A。
我知道 Activity 有 TaskStackBuilder
用于此目的,但在显示我的通知之前,我找不到任何用于为 fragment 构建 backStack
的内容。
知道如何构建堆栈吗?我尝试将所有 fragment 添加到事务中,然后在添加 fragment C 之前提交,但在第二次提交时我得到 IllegalStateException: commit already called
最佳答案
fragment 堆栈的手动处理很困难。我建议您查看 Navigation Component .它将允许通过适当的返回堆栈处理(NavDeepLinkBuilder
类)构建显式深层链接。
显示您的代码。可能您必须为每个 fragment 创建新事务并提交操作。使用此方法添加 A、B 和 C:
public void addFragmentOnTop(Fragment fragment) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.container, fragment)
.addToBackStack(null)
.commit();
}
关于android - 为推送通知构建 fragment backStack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57769596/