问题描述
我有一个宠物项目,正在使用Android Architecture Component。因此,这是一个几乎没有碎片的活动。我正在使用导航组件,并且工作正常。但是现在我想从通知中打开一个特定的片段。但我也想将先前的片段添加到backstack中。
因此,如果我有一个通常从片段B打开的片段C。我想按片段的顺序A-> B-> C打开应用程序(通过通知),这样,当我按下“后退按钮”时我将关闭片段C,然后看到片段B(但没有看到主片段A)。是否可以使用NavigationComponent实现此目的?
解决方法
您可以使用导航图内的显式深层链接来执行此操作。我本人从不与其合作,但是当我阅读文档时,您可以实现所描述的内容。适当的向后导航,就好像您将通过应用程序导航至该屏幕一样。
当用户通过显式深层链接打开您的应用程序时,将清除任务后退堆栈,并将其替换为深层链接目标。嵌套图形时,每个嵌套级别的起始目标(即,层次结构中每个元素的起始目标)也被添加到堆栈中。这意味着,当用户从深层链接目标按下“返回”按钮时,他们将在导航堆栈中向上导航,就像从应用程序的入口点进入您的应用程序一样。
来源:https://developer.android.com/guide/navigation/navigation-deep-link#explicit