startActivityForResult和startActivity的区别
时间: 2024-06-15 15:09:02 浏览: 135
startActivityForResult
startActivity和startActivityForResult是Android开发中常用的两个方法,它们的区别如下[^1]:
1. startActivity( ):这个方法用于启动另一个Activity,它不会自动返回到原来的Activity。如果需要返回到原来的页面,必须再次使用startActivity( )来启动原来的Activity。
2. startActivityForResult( ):这个方法也用于启动另一个Activity,但它可以在启动的Activity结束后返回结果给原来的Activity。在启动Activity时,可以传递一个请求码(requestCode),当启动的Activity结束后,可以通过onActivityResult( )方法获取返回的结果。
下面是一个示例代码,演示了startActivity和startActivityForResult的使用:
```java
// 启动另一个Activity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
// 启动另一个Activity并获取返回结果
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
// 在启动的Activity中设置返回结果
Intent intent = new Intent();
intent.putExtra("result", "Hello World");
setResult(RESULT_OK, intent);
finish();
// 在原来的Activity中获取返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回结果
}
}
```
阅读全文