在目标Activity中,通常使用setResult()方法设置返回数据。这是正确的操作吗?
时间: 2024-10-17 16:03:00 浏览: 29
Android中两个Activity之间数据传递及返回问题
是的,在Android开发中,当你希望从一个Activity(目标Activity)向启动它的Activity(原Activity)传递数据时,通常会使用`setResult()`方法。这个方法用于设置返回给启动者的意图(Intent)的结果码和结果数据。当用户完成某些操作后,目标Activity调用`finish()`方法结束自身,并使用`setResult()`方法指定结果代码和可能包含的数据。
例如,如果你希望表示操作成功并且有额外的数据:
```java
// 设置结果代码和数据
Intent resultIntent = new Intent();
resultIntent.putExtra("data_key", "data_value");
setResult(Activity.RESULT_OK, resultIntent);
// 然后关闭当前Activity
finish();
```
原Activity可以通过`onActivityResult()`回调来获取这些数据。如果没有特定的数据需要返回,或者操作失败,可以使用`RESULT_CANCELED`作为结果码。
需要注意的是,`setResult()`应该在`onPause()`或`onStop()`之前调用,因为它会在随后的`finish()`中立即生效。同时,如果Activity是通过 startActivityForResult()启动的,那么在`onActivityResult()`处理完结果后也需要手动结束 Activity。
阅读全文