当通过启动器重新打开应用程序时,Chrome自定义选项卡将关闭



我使用Chrome自定义选项卡打开应用程序内的链接。该应用程序在单个活动中运行,launchMode=singleTask。当我在自定义选项卡打开时退出应用程序,并通过最近的应用程序屏幕返回应用程序时,该选项卡将被保留。然而,如果我退出应用程序并通过单击主屏幕启动器上的图标重新打开它,那么自定义选项卡就不见了。

这种行为很难让一些用户流(如使用单独的应用程序进行银行付款确认(发挥作用。只要应用程序在后台活动,有什么方法可以保留自定义选项卡吗?

打开活动中自定义选项卡的代码:

val builder = CustomTabsIntent.Builder()
builder.enableUrlBarHiding()
val customTabsIntent = builder.build()
customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
customTabsIntent.launchUrl(this, Uri.parse(url))

我自己设法解决了这个问题,毕竟这是关于launchModes的。我有一个SplashActivity,它是应用程序的入口点(处理MAIN和LAUNCHER意图(。然后我有一个MainActivity来托管实际的应用程序。启动模式最初是这样设置的:

  • 启动活动->单个任务
  • 主要活动->单个任务

我需要将MainActivity保留为singleTask,但事实证明,从SplashActivity中删除launchMode解决了问题。所以我想,当点击启动程序中的图标时,SplashActivity会在顶部切换一小段时间,这会杀死Chrome自定义选项卡。

最新更新