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

startIntentSenderForResult已废弃,Fragment中应用内更新如何获取onActivityResult回调

Fragment中应用内更新废弃startIntentSenderForResult的回调实现方案

现在startIntentSenderForResult已被官方Activity Result API替代,针对AppUpdateManager的调用场景可按以下步骤改造:

  • 首先保证依赖版本达标,com.google.android.play:core-ktx版本需≥1.10.0,该版本开始支持Activity Result API的调用重载
  • 在Fragment中全局注册更新请求的启动器,直接作为成员变量初始化即可:
private val appUpdateLauncher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result ->
    // 此处替换你原来onActivityResult中的更新逻辑即可
    when (result.resultCode) {
        Activity.RESULT_OK -> {
            // 用户确认更新,后续业务处理
        }
        Activity.RESULT_CANCELED -> {
            // 用户取消更新,后续业务处理
        }
        ActivityResult.RESULT_IN_APP_UPDATE_FAILED -> {
            // 更新流程异常失败,后续业务处理
        }
    }
}
  • 替换原有的startUpdateFlowForResult调用参数:
appUpdateManager.startUpdateFlowForResult(
    info.result,
    AppUpdateType.FLEXIBLE,
    appUpdateLauncher, // 替换原来的fragment::startIntentSenderForResult参数
    flexibleAppUpdateReqCode // 该参数目前已无实际作用,传任意合法int值即可
)

注意:registerForActivityResult必须在Fragment生命周期走到onStart之前完成注册,禁止在点击事件、异步回调等时机执行注册操作,否则会抛出运行时异常。
改造完成后无需再重写Fragment的onActivityResult方法,所有更新结果逻辑都放在启动器的回调块中处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:09:03