registerForActivityResult()方法
时间: 2024-05-04 18:13:29 浏览: 88
registerForActivityResult()方法是Android Jetpack库中的一个方法,用于注册一个Activity结果的回调。它可以用于处理从其他Activity返回的结果数据,例如从相机或图库选择照片、获取用户权限等操作。
该方法的使用需要传入一个ActivityResultContract对象和一个ActivityResultCallback对象作为参数。ActivityResultContract定义了Activity之间传递数据的协议,例如选择照片时可以使用ActivityResultContracts.GetContent()来获取照片的URI。而ActivityResultCallback则定义了处理结果数据的逻辑,当其他Activity返回结果时,会调用该回调方法。
以下是registerForActivityResult()方法的示例代码:
```java
ActivityResultLauncher<Uri> launcher = registerForActivityResult(new ActivityResultContracts.GetContent(),
new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri result) {
// 处理返回的结果数据
// 在这里可以获取到选择的照片URI
}
});
// 启动其他Activity并等待结果
launcher.launch(null);
```
在上述示例中,我们使用了ActivityResultContracts.GetContent()作为协议,表示获取照片内容。在回调方法中,我们可以处理返回的结果数据,例如获取选择的照片URI,并进行相应的操作。
阅读全文