首页 > 解决方案 > 重定向后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=".*"/>

但正如您在此处看到 的,浏览器仍然是活动任务,应用程序在其中继续执行。

我应该将某些标志/一组标志添加到浏览器意图中吗?我是否错过了活动的意图过滤器的重要内容?感谢您提供的任何帮助/指示。

如果我在这里混淆了基本术语,我深表歉意,我对整个应用程序开发非常陌生。

标签: androidkotlinandroid-intenturl-scheme

解决方案


我似乎通过添加android:launchMode="singleTask"到清单中的活动声明来解决我的问题,以强制它交换回活动的原始实例。


推荐阅读