android - 重定向后Android应用程序继续在外部浏览器中运行
问题描述
如标题中所述,当我的应用程序的一个活动从外部浏览器(使用 Firefox 测试)使用自定义方案调用时,它会正确返回到活动并正常进行。但是,问题是,如果我要打开任务视图,我会看到该活动在浏览器任务中继续进行,而我的应用程序的任务留在了之前的活动中。
我启动浏览器:
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(authUrl)
startActivity(i)
最终,这会导致使用自定义方案重定向到我的应用程序:
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="callback"
android:scheme="d2app"
android:pathPattern=".*"/>
但正如您在此处看到 的,浏览器仍然是活动任务,应用程序在其中继续执行。
我应该将某些标志/一组标志添加到浏览器意图中吗?我是否错过了活动的意图过滤器的重要内容?感谢您提供的任何帮助/指示。
如果我在这里混淆了基本术语,我深表歉意,我对整个应用程序开发非常陌生。
解决方案
我似乎通过添加android:launchMode="singleTask"
到清单中的活动声明来解决我的问题,以强制它交换回活动的原始实例。
推荐阅读
- android - 图形 API 调试器错误 com.google.gapid.Server$GapisInitException
- oop - 业务规则领域建模
- r - 在 data.table 中矢量化 R for 循环
- c++ - 模板参数推导过程中会发生什么?
- vue.js - Vue.js 中的循环引用问题 - 但仅限于 CodeSandbox
- quarkus - 使用 h2 数据库运行具有持久性扩展的 Quarkus
- c# - Entity Framework Core 中的一对一关系
- qt - 如何在qt中多次使用单个QLineEdit来每次编辑不同的标签?
- c# - 如何从布尔值中获取 IEnumerable 枚举?
- ruby - 将 S3 存储桶文件复制到辅助存储桶?