传统的startActivityForResult方法相信大家都使用过,使用起来实属不便。因为其需要在Activity的onActivityResult方法中回传回调方法。因此就有了registerForActivityResult,其简化了回调的写法,同时提供了多种应用场景中Activity的调用。
基础用法:
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
int resultCode = result.getResultCode();
if(resultCode == Activity.RESULT_OK){
Intent data = result.getData();
// TODO
}
}
}).launch(new Intent(this, MainActivity2.class));
提供的其他Activity操作:
- RequestMultiplePermissions : 多个权限请求
- RequestPermission : 单个权限请求
- TakePicturePreview : 拍照预览
- TakePicture : 拍照
- TakeVideo : 摄像
- PickContact : 选择联系人
- GetContent : 获取各种文件的Uri
- GetMultipleContents : 获取多个各种文件的Uri
- OpenDocument : 打开文件
- OpenMultipleDocuments : 打开多个文件
- OpenDocumentTree : 打开文件夹
- CreateDocument : 创建文件
再见!onActivityResult!你好,Activity Results API!_zwluoyuxi的专栏-CSDN博客
onActivityResult遭弃用?来康康registerForActivityResult结果回调的最新用法_DwyaneQiang的博客-CSDN博客
发表评论