使用startActivityForResult()方法可以启动一个Activity,并且在该Activity关闭后,可以获取到返回的结果。
以下是使用startActivityForResult()方法的步骤:
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
Intent returnIntent = new Intent();
returnIntent.putExtra("result", resultData);
setResult(Activity.RESULT_OK, returnIntent);
finish();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回结果
}
}
注意事项:
请求码(requestCode)是一个整型值,用于标识启动的Activity,可以自定义。
setResult()方法用于设置返回结果,第一个参数为结果码(resultCode),一般使用Activity.RESULT_OK表示成功。
可以通过Intent对象的putExtra()方法传递额外的数据,返回结果时可以通过getXXXExtra()方法获取。
如果被启动的Activity意外关闭(如崩溃),则onActivityResult()方法可能不会被调用,需要注意处理这种情况。