RESULT_OK是什么,什么时候用

本文解析了在Android开发中如何正确使用ActivityResult。重点介绍了RESULT_OK的作用及其误用情况,并给出了正确的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实可以理解为系统帮你预设好了的标识符,让你可以根据这个标识符做出不同的动作。说到底就是个int值,要是不喜欢用,或者结果有多种,系统预设好的不够你用,你完全可以不理他,讲RESULT_OK换成12345678什么的 都行,

但是当你用在这种情况就不可以

startActivityForResult(new Intent(this,BlacklistActivityEdit.class), RESULT_OK);

这种情况无法返回结果,在开启意图时,不能把RESULT_OK当做请求码看待,

 

正确的做法:

startActivityForResult(new Intent(this,BlacklistActivityEdit.class), 10);

转载于:https://www.cnblogs.com/zhangshaochuan/p/5985945.html

在Android中,`registerForActivityResult`是一个用于处理异步操作结果的方法,通常与启动其他活动(如Camera或媒体录制)并接收其结果相关。当`onActivityResult`回调的`resultCode`为`Activity.RESULT_OK`时,这意味着用户已经成功完成所需的操作,并提供了一个结果数据。 如果你需要在这样的场景下创建`MediaProjection`对象,这是步骤: 1. 首先,确保你的应用有权限访问相机或其他媒体设备,可以在AndroidManifest.xml中添加相应的权限,例如: ```xml <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="true" /> ``` 2. 在需要启动媒体投影的地方(比如点击按钮),你可以使用`startActivityForResult()`启动一个新的Activity,并注册一个`ActivityResultListener`: ```java Intent mediaIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); mediaIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(outputFile)); startActivityForResult(mediaIntent, REQUEST_CODE_CAPTURE); // 注册一个结果处理器 final MyResultHandler resultHandler = new MyResultHandler(); registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), result -> { if (result.getResultCode() == RESULT_OK) { // 如果requestCode匹配且结果码为RESULT_OK ResultData data = result.getData(); if (data != null) { try { MediaProjection projection = data.getParcelableExtra(MediaStore.EXTRA Projection.MediaProjection); // 使用projection进行后续操作... } catch (Exception e) { Log.e("Error", "Failed to get MediaProjection", e); } } } }, resultHandler ); ``` 这里,你需要自定义一个`MyResultHandler`类来处理不同的请求代码(`requestCode`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值