Android Intent 回调时机
1. 整体流程
整个 Android Intent 回调的流程可以用以下表格展示:
步骤 | 动作 | 说明 |
---|---|---|
1 | 发起Intent | 使用Intent对象创建并启动一个新的Activity或Service |
2 | 数据处理 | 在被启动的Activity或Service中处理传递的数据 |
3 | 完成操作 | 在被启动的Activity或Service中完成操作,并准备回调Intent |
4 | 设置结果 | 使用setResult()方法设置回调结果 |
5 | 返回上一级 | 使用finish()方法关闭当前Activity或Service,返回到上一级 |
6 | 获取结果 | 在启动Activity或Service的地方,通过onActivityResult()方法获取回调结果 |
2. 每一步的具体操作和代码
步骤 1:发起Intent
在发送 Intent 前,首先要创建一个 Intent 对象,并通过 startActivity() 或 startActivityForResult() 方法启动一个新的 Activity 或 Service。发送 Intent 的代码如下:
Intent intent = new Intent(this, TargetActivity.class);
startActivity(intent);
步骤 2:数据处理
在被启动的 Activity(即 TargetActivity)中,我们需要处理传递过来的数据。可以通过 getIntent() 方法获取传递的 Intent,并从 Intent 中获取需要的数据。以下是一个示例代码:
Intent intent = getIntent();
String data = intent.getStringExtra("key");
步骤 3:完成操作
在 TargetActivity 中完成需要的操作,并准备回调 Intent。这个步骤根据具体需求的不同而不同,可以是用户输入、网络请求等等操作。
步骤 4:设置结果
在 TargetActivity 完成操作后,需要将回调结果设置到 Intent 中。可以使用 setResult() 方法设置回调结果,以下是一个示例代码:
Intent resultIntent = new Intent();
resultIntent.putExtra("result", "success");
setResult(Activity.RESULT_OK, resultIntent);
步骤 5:返回上一级
在设置好回调结果后,使用 finish() 方法关闭当前的 Activity 或 Service,返回到上一级。以下是一个示例代码:
finish();
步骤 6:获取结果
在启动 Activity 或 Service 的地方,通过 onActivityResult() 方法获取回调结果。在 onActivityResult() 方法中,可以根据 requestCode 和 resultCode 来判断是否成功获取到回调结果,并从 Intent 中获取结果数据。以下是一个示例代码:
@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");
// 对回调结果进行处理
}
}
总结
通过以上的步骤和代码示例,可以实现 Android Intent 回调的完整流程。首先,我们需要发起一个 Intent,并在目标 Activity 或 Service 中处理数据和完成操作。然后,设置回调结果并返回到上一级,并通过 onActivityResult() 方法获取回调结果进行处理。这样,就能实现 Android Intent 的回调时机。