导航组件隐式深度 link 返回按退出应用程序

Navigation Component implicit deep link back press exits the app

我创建了一个隐式深度 link,就像文档中提到的那样。

https://developer.android.com/guide/navigation/navigation-deep-link#implicit

隐式 - domain.com/ 当我点击它时,yhis 打开 activity 的一个新实例,在文档

中提到

如果我按回键,它会退出应用程序。

文档说它应该返回到之前的应用程序并重新加载该片段,我在这里做错了什么?

If the flag is not set, you remain on the task stack of the previous app where the implicit deep link was triggered. In this case, the Back button takes you back to the previous app, while the Up button starts your app's task on the hierarchical parent destination within your navigation graph.

后退按钮和向上按钮有什么区别?

The documentation says it should go back to the previous app and reloads that fragment, what am I doing wrong here?

您特别引用的文档说系统返回将带您回到深入 link 进入您的应用程序的应用程序,因此您看到的行为是预料之中的。

例如,如果您在 Discord 应用程序中单击 link,而该应用程序不使用 FLAG_ACTIVITY_NEW_TASK,则您的应用程序存在于 Discord 的 task stack 中,并且是其一部分返回堆栈。这意味着系统后退按钮预计会将您带回 Discord。

根据 Principles of Navigation,当您的 activity 被放置在另一个应用程序的任务堆栈上时,向上按钮的功能不同:

The Up button never exists your app

When your app is launched using a deep link on another app's task, Up transitions users back to your app’s task and through a simulated back stack and not to the app that triggered the deep link. The Back button, however, does take you back to the other app.

因此,向上按钮应该始终将用户留在您的应用程序中,并且向上按钮永远不会 return 用户访问 Discord 应用程序。