相关疑难解决方法(0)

带有深层链接的 Android 导航组件:多次调用 onNewIntent

这次我需要你的帮助来使用带有深度链接的 android 导航组件。

我一直在关注这个文档,片段和深层链接之间的连接工作正常。

问题在于接收深层链接的活动。就我而言,我设置了 android:launchMode="singleTask"

<activity android:name=".features.welcome.WelcomeActivity"
    android:launchMode="singleTask">
     <nav-graph android:value="@navigation/welcome_nav_graph" />
</activity>

override fun onNewIntent(intent: Intent?) {
    super.onNewIntent(intent)
    Timber.d("onNewIntent: $intent with activity: $this")
    navController.handleDeepLink(intent)
}
Run Code Online (Sandbox Code Playgroud)

通过这种配置,我注意到了一些奇怪的行为:

每次单击深层链接时,WelcomeActivity 都会收到两次 onNewIntent 调用。甚至有时会创建该活动的新实例..就像

1_ object1-onNewIntent

2_ object1-onNewIntent

3_ object2-onCreate

这里有一些日志:

首次发布

onCreate:意图 { flg=0x10000000 cmp={applicationId}/{package}.WelcomeActivity } 活动:{package}.WelcomeActivity@4adbef0

打开深层链接

onNewIntent: Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=https://{depp_link}… flg=0x10010000 cmp={applicationId}/{package}.WelcomeActivity(有附加)} 与活动:{package}.WelcomeActivity@4adbef0

onNewIntent: Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=https://{depp_link}... flg=0x1001c000 cmp={applicationId}/{package}.WelcomeActivity (有额外的)} 与活动:{package}.WelcomeActivity@4adbef0

onCreate: Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=https://{depp_link}... flg=0x1001c000 cmp={applicationId}/{package}.WelcomeActivity (有额外的)} 与活动:{package}.WelcomeActivity@b77c6b

杀死应用程序并打开深层链接

onCreate: Intent …

android android-jetpack android-architecture-navigation android-jetpack-navigation

10
推荐指数
2
解决办法
3642
查看次数