Android 10及以上Immediate In-App Update安装更新后重启异常关闭问题咨询
问题核心判定
你观测到的「Android 10及以上系统即时应用更新安装完成后不自动重启UI、Android 9及以下表现正常」的行为,不属于官方预期表现,问题与当前使用的com.google.android.play:core:1.9.0版本的已知适配缺陷直接相关。
问题根因
play:core:1.9.0是2020年发布的旧版本,其内置的即时更新完成后的重启逻辑,没有适配Android 10(API 29)引入的两项系统权限规则变更:后台启动Activity的限制、非前台状态下的进程拉起管控。- 在Android 9及更低版本中,应用不受上述权限规则约束,旧库的重启逻辑可以正常触发;但在Android 10及以上系统中,旧库的重启逻辑因为没有适配系统新的启动权限要求,这类进程拉起、Activity启动请求会被系统直接拦截,导致安装完成后无法自动将应用UI拉起到前台、重建应用任务栈。
- 官方文档中描述的「即时更新安装完成后自动重启应用回到前台」的预期,是基于适配了全版本系统的新版SDK实现的,1.9.0版本本身不满足全版本兼容的要求。
可落地的修复方案
- 优先迁移到官方当前维护的应用内更新SDK:将旧的
com.google.android.play:core依赖替换为com.google.android.play:app-update:2.1.0及以上正式稳定版。该SDK已经完整适配了Android 10及以上系统的重启权限规则,不需要额外开发即可实现预期的自动重启行为,旧的play-core依赖目前已停止官方维护。 - 如果暂时无法升级依赖,可绕过旧库的内置重启逻辑:在监听更新状态、收到
InstallStatus为INSTALLED的回调分支中,手动通过PackageManager.getLaunchIntentForPackage()构建启动Intent,搭配Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK标记拉起应用,即可在高版本系统上实现安装完成后的UI重启。 - 补充校验现有回调逻辑:确认即时更新流程结束后,没有因为页面生命周期销毁、系统弹窗拦截,导致更新完成的状态回调没有被正常接收。
内容的提问来源于stack exchange,提问作者Varsha Verma
相关产品推荐
相关产品推荐

