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 的回调时机。