Android:handleDeeplink()之后导航深度链接未失效
我使用Jetpack导航在我的应用程序中实现了深度链接。我的应用程序遵循单活动架构。片段之间的导航由导航图组织 我发现了一个案例,其中调用了onCreate和Android:handleDeeplink()之后导航深度链接未失效,android,android-activity,android-jetpack-navigation,android-deep-link,onnewintent,Android,Android Activity,Android Jetpack Navigation,Android Deep Link,Onnewintent,我使用Jetpack导航在我的应用程序中实现了深度链接。我的应用程序遵循单活动架构。片段之间的导航由导航图组织 我发现了一个案例,其中调用了onCreate和onNewIntent回调。但这不应该发生。让我解释一下用例: 用户已从应用重定向到浏览器 当用户在浏览器中时,应用程序关闭(由操作系统或用户关闭) 用户通过深度链接重定向回应用程序 上面用例的Logcat如下所示(按正确的顺序): 2021-05-13 09:01:53.261暂停MainActivity@336e6f1//重定向到浏览
onNewIntent
回调。但这不应该发生。让我解释一下用例:
- 2021-05-13 09:01:53.261暂停MainActivity@336e6f1//重定向到浏览器
- 2021-05-13 09:02:21.584 onDestroyMainActivity@336e6f1//应用程序已由用户或操作系统关闭
- 2021-05-13 09:02:24.804创建后MainActivity@4a820dd//重定向回应用程序
- 2021-05-13 09:02:24.940MainActivity@4a820dd
- 2021-05-13 09:02:24.979创建后MainActivity@349ea37
- 2021-05-13 09:02:25.102恢复MainActivity@349ea37
- 2021-05-13 09:02:25.495 onDestroyMainActivity@4a820dd
MainActivity
实例,在同一个实例中触发onCreate
和onNewIntent
回调
当用户在浏览器中时,应用程序未关闭时,logcat显示如下:
- 2021-05-13 08:57:47.097暂停MainActivity@7507cde
- 2021-05-13 08:58:18.310MainActivity@7507cde
- 2021-05-13 08:58:18.312继续MainActivity@7507cde
singleTask
还是singleInstance
启动模式都没有改变任何东西
我的问题是:
onCreate
和onNewIntent
回调怎么可能一个接一个地调用MainActivity
实例
导航图:
主要活动:
lazy提供的专用val navController{
findNavController(R.id.mainNavigationFragment)
}
重写创建时的乐趣(savedInstanceState:Bundle?){
setTheme(R.style.AppTheme)
super.onCreate(savedInstanceState)
设置支持操作栏(工具栏)
NavigationUI.setupWithNavController(
绑定导航,
导航控制器
)
}
覆盖Wintent(意图:意图?){
super.onNewIntent(意图)
mavController.handleDeepLink(意图)
}
调用浏览器的意图:
试试看{
startActivity(Intent(Intent.ACTION_视图,Uri.parse(url)))
}捕获(例如:ActivityNotFoundException){
showSnackBar(R.string.browser\u未找到,binding.root)
}
看起来这种行为是意料之中的。还有一个问题是,这种行为是否是有意的。还没有答案