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

Android开发中第二个Activity的onActivityResult失效无法显示图库

Android onActivityResult 图库跳转无响应排查方案

1. 启动逻辑校验

  • 确认ProfileActivity中启动GalleryActivity时调用的是startActivityForResult()而非普通startActivity(),传入的requestCode必须为正整数:
// 先定义全局常量,值必须大于0
private static final int REQUEST_PICK_IMAGE = 1001;
// 跳转逻辑
startActivityForResult(new Intent(this, GalleryActivity.class), REQUEST_PICK_IMAGE);

2. GalleryActivity返回结果逻辑校验

  • 选中图片后必须先调用setResult()传入正确参数,再调用finish(),顺序不能颠倒:
// selectedImageUri为你选中的图库图片Uri
Intent resultIntent = new Intent();
resultIntent.putExtra("selected_image_uri", selectedImageUri);
setResult(RESULT_OK, resultIntent);
// 必须放在setResult之后调用
finish();

3. onActivityResult回调逻辑校验

  • 确认重写的方法参数正确,必须调用super方法,且判断逻辑没有遗漏:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_PICK_IMAGE && resultCode == RESULT_OK && data != null) {
        Uri imageUri = data.getParcelableExtra("selected_image_uri");
        // 此处执行图片加载逻辑,推荐使用Glide、Picasso等第三方框架加载,避免手动转Bitmap出现OOM
    }
}
  • 若项目targetSdkVersion >= 30,原生onActivityResult已被废弃,建议替换为Activity Result API,避免回调失效:
// 全局定义启动器
private ActivityResultLauncher<Intent> galleryLauncher = registerForActivityResult(
    new ActivityResultContracts.StartActivityForResult(),
    result -> {
        if (result.getResultCode() == RESULT_OK && result.getData() != null) {
            Uri imageUri = result.getData().getParcelableExtra("selected_image_uri");
            // 图片加载逻辑
        }
    }
);
// 跳转时调用
galleryLauncher.launch(new Intent(this, GalleryActivity.class));

4. 权限校验

  • 确认AndroidManifest.xml中已声明对应存储权限,且运行时权限已被用户授权:
    • Android 13及以上:需声明android.permission.READ_MEDIA_IMAGES
    • Android 10~12:需声明android.permission.READ_EXTERNAL_STORAGE
    • Android 9及以下:需声明android.permission.WRITE_EXTERNAL_STORAGE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:45:03