如何解决当通过导航组件的深层链接打开片段而不是返回到开始目标片段时,在返回按钮上关闭应用程序
例如我有两个片段:
- 用作我的导航图的起始目的地的起始片段
- 用于深层链接的片段
当我打开电子邮件中的链接时,它会打开我的应用程序活动(如果已经打开,则重新创建它),然后打开开始目标片段,然后打开深层链接片段,当我按下后退按钮时,它会返回开始目标片段,但我没有不想要这种行为,我希望它关闭应用程序,因此片段深层链接表现为起始目标片段
解决方法
您可以通过多种方式执行此操作:
-
如果您可以更改起始目的地,请使用深层链接片段作为起始目的地,但我猜您的起始目的地中有一些逻辑,并且希望在指定条件下以编程方式导航到深层链接。在这种情况下,此解决方案不适用。
-
在以编程方式导航到深层链接之前弹出 backstack:
// remove start destination fragment
findNavController().popBackStack()
findNavController().navigate(Uri.parse(<your_deeplink>))
- 通过终止来自深层链接片段的活动。侦听片段中的 onBackPressDispatcher,并从片段中调用
requireActivity().finish()
以终止 Activity。此 medium post 详细解释了onBackPressDispatcher
回调。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。