You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过App Links跳转回原应用时CustomTab被关闭问题如何解决?

问题原因

两种跳转方式的逻辑差异加上你当前MainActivity的launchMode配置,共同导致了CustomTab被关闭:

  • 你当前App1的MainActivity配置为singleTask启动模式,该模式的核心特性是:如果Activity已经在任务栈中存在实例,再次启动该Activity时会将栈内该实例上方的所有Activity全部销毁,将自身抬到栈顶。
  • CustomTab本质是托管在浏览器进程的Activity,从App1启动时默认会被加入到App1的任务栈中,位于MainActivity的上方。
  • 包名跳转时,getLaunchIntentForPackage返回的启动Intent会直接将App1已存在的整个任务栈拉到前台,不会触发栈内Activity的清理逻辑,因此CustomTab会被保留。
  • App Links跳转时,启动的目标直接匹配到MainActivity,触发singleTask的栈清理规则,直接销毁了位于MainActivity上方的CustomTab,因此出现CustomTab被关闭的问题。
可行解决方案

最稳妥的方案是拆分App Links接收逻辑,避免启动MainActivity触发栈清理:

  1. 新增一个专门处理App Links回调的透明Activity,无需布局,配置noHistory属性避免留在栈中
  2. 将原本属于MainActivity的App Links intent-filter转移到这个新Activity上
  3. 新Activity接收到跳转请求后,处理完回调参数直接调用finish()即可,此时App1的任务栈会被带到前台,CustomTab会完全保留不受影响

具体配置示例

App1 AndroidManifest新增Activity配置

<activity
    android:name=".AppLinkCallbackActivity"
    android:exported="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:noHistory="true">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data
            android:scheme="https"
            android:host="some.secret.url" />
    </intent-filter>
</activity>

AppLinkCallbackActivity代码示例

public class AppLinkCallbackActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 此处处理App Links带回的参数、执行你的回调逻辑
        // 处理完成直接finish
        finish();
    }
}

可选优化

如果不想新增Activity,可以将MainActivity的启动模式改为standard,同时在App2跳转的Intent中添加FLAG_ACTIVITY_REORDER_TO_FRONT | FLAG_ACTIVITY_SINGLE_TOP标志,不过该方案可能会产生MainActivity多实例的问题,优先级低于新增Activity的方案。

内容的提问来源于stack exchange,提问作者user969043

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:45:06