数据传送调用acitivity的传送与返回
时间: 2024-10-13 20:02:15 浏览: 26
android传送照片到FTP服务器的实现代码
在Android应用中,如果你想要从一个Activity(Activity A)向另一个Activity(Activity B)传递数据,并在Activity B处理完后返回数据给Activity A,通常会涉及两个过程:传入数据(Starting an Activity with Data)和获取结果(Receiving a Result from an Activity)。
**传入数据(Starting an Activity with Data)**:
1. **通过Intent传递数据**: 在Activity A中,创建一个新的Intent,设置ACTION、添加数据或 extras。例如:
```java
Intent intent = new Intent(A.this, B.class);
intent.putExtra("key", "value"); // 传递字符串数据
startActivity(intent);
```
2. **启动模式**: 确保在启动模式中选择支持返回结果,如 `FLAG_ACTIVITY_NEW_TASK` 和 `FLAG_ACTIVITY_FORWARD_RESULT`。
**获取结果(Receiving a Result from an Activity)**:
1. **声明ActivityResult**: 在Activity B中,声明一个或多个可能的requestCode,如 `setResult(int requestCode, Intent data);`
2. **处理回调**: 在`onActivityResult()`方法中处理返回的结果,根据requestCode判断返回的数据。例如:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == YOUR_REQUEST_CODE && resultCode == RESULT_OK) {
String value = data.getStringExtra("key");
// 处理接收到的数据
}
}
```
3. **关闭并返回**: 当完成数据处理时,调用 `finish()` 结束Activity B,同时通过 `setResult()` 返回数据。
**相关问题--:**
1. 除了Intent,还有哪些方式可以在两个Activity之间传递数据?
2. 如何避免ActivityB被系统自动销毁,以便接收到ActivityA的返回结果?
3. 在异步任务中如何处理Activity之间的数据传递和结果返回?
阅读全文