4

我正在使用 Jetpack Navigation 进行深层链接。我已添加android:launchMode="singleTask"到我的活动中。如果之前未打开应用程序,则会正确重定向深层链接。但是,如果应用程序存在于内存中,则应用程序将进入前台,但深度链接未正确打开。

我的设备是搭载 Android 10 的 Pixel 2。我发现onCreate只有在我第一次打开应用程序时才会调用它。但是,onNewIntent每次我单击深层链接时都会调用它。

是 Jetpack Navigation 中的错误还是我在设置时忘记了某些内容?

4

1 回答 1

7

根据handleDeepLink()文档

Activity如果您在构造此 NavController 时已将 an 作为上下文传入,则在您第一次设置图形时会自动调用此方法,但如果您的 Activity 在 中接收新 Intent,则应手动调用Activity.onNewIntent(Intent)

NavController不会覆盖您活动中的方法,因此如果您坚持使用android:launchMode="singleTask".

根据Single Activity talk,您根本不应该使用任何launchMode标志 - 默认值实际上是您 99.9% 的时间想要的。

于 2020-05-03T05:17:13.767 回答