更新时间:2025-04-01 04:25:23
在Android开发中,`startActivityForResult()` 是一个非常实用的方法,用于启动一个新的Activity并等待其返回结果。简单来说,就是从当前页面跳转到另一个页面,等对方处理完后带回数据。✨
首先,你需要调用 `startActivityForResult(intent, requestCode)` 来启动目标Activity。其中,`intent` 是你设置的意图,`requestCode` 是请求码,用来标识这次请求。比如:
```java
Intent intent = new Intent(this, TargetActivity.class);
startActivityForResult(intent, 100);
```
当目标Activity完成任务后,会通过 `setResult()` 返回结果,并调用 `finish()` 结束自身。此时,原Activity会回调 `onActivityResult()` 方法,接收返回的数据。例如:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回值
}
}
```
这种方式非常适合需要交互的场景,比如选择图片或拍照。💡
⚠️ 注意:从API 26开始,推荐使用 `startActivityForResult()` 的替代方案——`registerForActivityResult()`,以提高灵活性和性能哦!💪