Android 11、自定义标签和 FLAG_ACTIVITY_CLEAR_TOP

Posted

技术标签:

【中文标题】Android 11、自定义标签和 FLAG_ACTIVITY_CLEAR_TOP【英文标题】:Android 11, Custom Tabs, and FLAG_ACTIVITY_CLEAR_TOP 【发布时间】:2021-01-04 00:26:04 【问题描述】:

在我正在处理的应用程序中,Chrome 选项卡用于外部 OAuth 流程。 在流程结束时,自定义选项卡保持打开状态并显示一条信息性消息,并发送一封包含自定义方案链接的电子邮件。

android 10 之前,单击电子邮件链接将返回应用程序,关闭选项卡并继续执行所需的任何操作。为了实现这一点,我们使用了启动选项卡的TabLauncherActivity 和从电子邮件接收方案并启动TabLauncherActivityFLAG_ACTIVITY_CLEAR_TOP 有效地返回到前一个实例并清除选项卡和SchemeHandlerActivity从堆栈中。

进入 Android 11。应用程序通过链接被带到前台,但 Chrome 选项卡拒绝关闭。手动关闭它会恢复预期的流程。

该应用程序尚未针对 11。我知道应用间通信有一些限制,但不是针对平台,我希望不会有问题。

任何关于问题可能是什么的想法都将受到欢迎。

谢谢。

【问题讨论】:

【参考方案1】:

为您的自定义标签意图使用标志 Intent.FLAG_ACTIVITY_NO_HISTORY

customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NO_HISTORY

因此,当您返回应用程序时,自定义选项卡将不再存在。

【讨论】:

以上是关于Android 11、自定义标签和 FLAG_ACTIVITY_CLEAR_TOP的主要内容,如果未能解决你的问题,请参考以下文章

将标签和图像动态添加到 Android 中的自定义视图

Android自定义View(LineBreakLayout-自动换行的标签容器)

Android 自定义ViewGroup之实现FlowLayout-标签流容器

将自定义标签添加到材料范围滑块

Android-自定义流布局标签

Android-自定义流布局标签