问题标签 [onnewintent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android:handleDeeplink() 后导航 Deeplink 未失效
我已经使用Jetpack Navigation在我的应用程序中实现了深度链接。我的应用遵循单活动架构。片段之间的导航由导航图组织。
我发现了一个案例,其中和回调 都被调用了。但这不应该发生。让我解释一下用例:onCreate
onNewIntent
- 用户从应用程序重定向到浏览器。
- 当用户在浏览器中时,应用程序已关闭(由操作系统或用户)
- 用户通过深层链接被重定向回应用程序。
上面用例的 Logcat 看起来是这样的(按正确的顺序):
- 2021-05-13 09:01:53.261 onPause MainActivity@336e6f1 //重定向到浏览器
- 2021-05-13 09:02:21.584 onDestroy MainActivity@336e6f1 //应用被用户或操作系统关闭
- 2021-05-13 09:02:24.804 onCreate MainActivity@4a820dd //重定向回应用程序
- 2021-05-13 09:02:24.940 onNewIntent MainActivity@4a820dd
- 2021-05-13 09:02:24.979 onCreate MainActivity@349ea37
- 2021-05-13 09:02:25.102 onResume MainActivity@349ea37
- 2021-05-13 09:02:25.495 onDestroy MainActivity@4a820dd
所以应用程序MainActivity
一次创建两个实例,onCreate
并onNewIntent
在同一个实例中触发回调。
当用户在浏览器中时应用程序未 关闭时,logcat 看起来是这样的:
- 2021-05-13 08:57:47.097 onPause MainActivity@7507cde
- 2021-05-13 08:58:18.310 onNewIntent MainActivity@7507cde
- 2021-05-13 08:58:18.312 onResume MainActivity@7507cde
启动模式都singleTask
没有singleInstance
改变任何东西。
我的问题是:
- 怎么可能同时调用
onCreate
和回调?onNewIntent
- 为什么
MainActivity
一次创建了两个实例? - 当用户从应用程序导航回来,然后通过最近的应用程序打开应用程序时,将触发与上述 logcat 中相同的日志。为什么会这样?
我会非常感谢任何回答我问题的人。在这里我添加我的代码:
显现:
导航图:
主要活动:
向浏览器调用意图:
android - 应用程序很好,有一个新的意图,但是当我再次点击相同的链接时。获取错误:未找到处理 Intent { act=android.intent.action.VIEW 的 Activity
我使用 Intent 从网站向 Progressive Web App 发送消息。只是为了在本机代码中显示 admob 广告。我发现的最佳解决方案是将代码添加到
简单而有效,但只有一次。据我了解,当我使用 onNewIntent 时,它是替换 onCreate 而不是在哪里注册活动android:launchMode="singleInstance"
和
当我多次使用这个意图时,我得到了这个错误:
android-activity - Xamarin.Android:在已运行的应用实例中接收查看和发送操作(LaunchMode 为 SingleTop)
我希望我的应用程序成为 PDF 的查看器并发送目标,但不希望它每次都创建新实例。如何在我的 ? 中捕获视图意图操作MainActivity
?我试过OnNewIntent()
但它没有被调用。只有当应用程序尚未运行时,我才会在OnCreate()
. 我错过了什么?