我有一个名为“ C”的目标片段,可以使用3种不同的流之一导航到该片段。
例如
流程1:A-> C
流程2:A-> B-> C
流程3:A-> X-> Y-> C
我正在使用全局操作导航到C,因为它使我可以使用相同的操作进行导航,而不管我是在Flow 1、2还是3中。这一切似乎都很好,但是我已经现在无法从C导航回来。
对于流1和2,我想从C返回到A。我一直在通过调用.popBackStack(R.id.A, false)
来做到这一点,该方法效果很好。现在,我们将Flow 3添加到了我们的应用程序中。在流程3中,当我从C导航返回时,我想转到X,而不是A。所以我以前使用.popBackStack(R.id.A, false)
的解决方案在这里不起作用,因为这总是使我回到A。
是否存在一种建议的回溯方式,该方式取决于用户如何到达他们当前所在的目的地?
我可以看到检查现有的后堆栈,如果看到X或Y,那么我会使用.popBackStack(R.id.x, false).
或.popBackStack(R.id.a, false)
。
启动C时,我可以传入“后ID”作为参数,然后可以在.popBackStack(backId, false)
中使用
我在这里缺少明显的东西吗?