如何使用startAbilityForResult()实现不同Page间的跳转?
时间: 2024-10-11 16:07:06 浏览: 9
在Android中,`startAbilityForResult()`是用于启动另一个Activity的能力请求(例如Fragment或Activity),并在完成操作后返回结果给发起的Activity。这通常用于跨应用的功能调用,比如从一个App内的某个页面跳转到另一个App执行某些任务,并希望在完成后回到原处。
下面是一个基本的步骤:
1. **创建Intent**: 首先,你需要创建一个`PendingIntent`,它包含了你要执行的Activity或Service的能力ID。如果你想要的是外部应用的某种功能,可以使用`startActivityForResult(Intent, requestCode)`。
```java
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, requestCode, intent, flags);
```
2. **启动跳转**: 然后在需要启动新能力的地方,调用`startAbilityForResult()`并传递刚才的`resultPendingIntent`和一个请求码(requestCode)作为参数。
```java
startAbilityForResult(resultPendingIntent, requestCode);
```
3. **处理结果**: 当用户完成任务后,目标Activity会调用`onActivityResult()`方法并将结果返回。在这个方法里,你可以检查请求码(requestCode)是否匹配,然后解析并处理结果。
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == yourRequestCode) {
// 处理返回的结果数据
}
}
```