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

如何替换Google Android基础课程中已废弃的startActivityForResult方法

替换方案:使用官方推荐的Activity Result API

步骤1:新增成员变量注册结果回调

在MainActivity类中,新增如下ActivityResultLauncher类型的成员变量,替代原有onActivityResult方法的逻辑:

// 注册Activity返回结果回调,替代原有onActivityResult方法
private ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        result -> {
            // 此处写你原本在onActivityResult中的逻辑
            if (result.getResultCode() == RESULT_OK) {
                Intent replyIntent = result.getData();
                if (replyIntent != null) {
                    String replyMessage = replyIntent.getStringExtra(SecondActivity.EXTRA_REPLY);
                    // 显示返回的回复内容
                    mReplyHeadTextView.setVisibility(View.VISIBLE);
                    mReplyTextView.setText(replyMessage);
                    mReplyTextView.setVisibility(View.VISIBLE);
                }
            }
        }
);

步骤2:替换原startActivityForResult调用

将你标注的startActivityForResult(intent, TEXT_REQUEST);这行代码直接替换为:

activityResultLauncher.launch(intent);

注意事项

  • 原代码中定义的TEXT_REQUEST请求码已经不需要再使用,可以删除
  • 请确保项目依赖的androidx.activity版本不低于1.2.0、androidx.fragment版本不低于1.3.0,否则无法正常使用该API
  • 原来重写的onActivityResult方法如果没有其他用途,可以直接删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 10:00:03