Android registerForActivityResult使用


/**
*
下面是继承 ActivityResultContracts<I, O>的类,I 是输入,O 是得到的返回
         * StartActivityForResult: 通用的Contract,不做任何转换,Intent作为输入,ActivityResult作为输出,这也是最常用的一个协定。
         *
         * RequestMultiplePermissions: 用于请求一组权限
         *
         * RequestPermission: 用于请求单个权限
         *
         * TakePicturePreview: 调用MediaStore.ACTION_IMAGE_CAPTURE拍照,返回值为Bitmap图片
         *
         * TakePicture: 调用MediaStore.ACTION_IMAGE_CAPTURE拍照,并将图片保存到给定的Uri地址,返回true表示保存成功。
         *
         * TakeVideo: 调用MediaStore.ACTION_VIDEO_CAPTURE 拍摄视频,保存到给定的Uri地址,返回一张缩略图。
         *
         * PickContact: 从通讯录APP获取联系人
         *
         * GetContent: 提示用选择一条内容,返回一个通过ContentResolver#openInputStream(Uri)访问原生数据的Uri地址(content://形式) 。默认情况下,它增加了Intent#CATEGORY_OPENABLE, 返回可以表示流的内容。
         *
         * CreateDocument: 提示用户选择一个文档,返回一个(file:/http:/content:)开头的Uri。
         *
         * OpenMultipleDocuments: 提示用户选择文档(可以选择多个),分别返回它们的Uri,以List的形式。
         *
         * OpenDocumentTree: 提示用户选择一个目录,并返回用户选择的作为一个Uri返回,应用程序可以完全管理返回目录中的文档。launcher.launch("传递给第二个页面的数据:你好吗?")
         *
         */
private lateinit var actResult:ActivityResultLauncher<Intent>

actResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){
            if (it.resultCode == RESULT_OK){

            }
        }

actResult.launch(intent)

actResult.unregister()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容