registerForActivityResult 在两个activity之间传递数据
时间: 2024-05-04 11:13:42 浏览: 21
`registerForActivityResult` 是 **用于在两个 Activity 之间传递数据并获取结果的回调方法**。以下是使用 `registerForActivityResult` 传递数据的步骤:
1. **创建 Intent**:在第一个 Activity 中创建一个 Intent,将要传递的数据通过 Intent 传递给第二个 Activity。
2. **注册回调**:在第一个 Activity 中使用 `registerForActivityResult()` 方法注册一个回调,该回调将在第二个 Activity 返回结果时触发。
3. **启动 Activity**:使用 `ActivityResultLauncher` 的实例对象的 `launch()` 方法启动第二个 Activity,并传入 Intent。
4. **处理结果**:在第二个 Activity 中处理接收到的数据,并通过 setResult() 方法设置返回结果。
5. **接收结果**:当第二个 Activity 结束时,第一个 Activity 中注册的回调将被触发,可以在回调中获取第二个 Activity 返回的结果。
此外,`registerForActivityResult()` 是在 Android Jetpack 的 Activity Result API 中引入的,用于替代过时的 `startActivityForResult()` 方法。它提供了一种更简洁的方式来处理从其他 Activity 返回的结果,同时也支持多种不同的用途和场景。
需要注意的是,使用 `registerForActivityResult()` 时,需要确保传入的 Intent 符合第二个 Activity 的预期输入,否则可能导致应用崩溃或行为异常。