}overridefunonActivityResult(requestCode:Int, resultCode:Int,data:Intent?){super.onActivityResult(requestCode, resultCode,data)when(requestCode) {1-> {if(resultCode == RESULT_OK) {valdata=data?.getStringExtra("data")// Handle data from SecondActivity} } } } } 这里调用了startActivityForResult()...
FirstActivity中的代码,我们需要使用Activity Result API来替代startActivityForResult()的写法,如下所示: 代码语言:javascript 复制 classFirstActivity:AppCompatActivity(){privateval requestDataLauncher=registerForActivityResult(ActivityResultContracts.StartActivityForResult()){result->if(result.resultCode==RESULT_OK...
startActivityForResult()方法如今已经被废弃了,官方推荐的是使用Activity Result API来实现两个Activity之间传递数据功能。但Activity Result API时能做的事还有很多,下面来学习一下怎么使用。 两个Activity之间交换数据 传统的写法就是使用startActivityForResult()方法传入intent和请求码,然后会回调到onActivityResult()中,...
优雅地封装 Activity Result API,完美地替代startActivityForResult(https://juejin.cn/post/6987575150283587592) Android onActivityResult的替代方法—registerForActivityResult(https://blog.csdn.net/weixin_42046829/article/details/116446887) 推荐阅读: 我的新书,《第一行代...
使用Activity Result API进行跳转新页面回传数据,操作分为两步: 1、通过registerForActivityResult方法定义一个函数处理回传数据; 2、通过launch()进行新页面的跳转。 示例: //使用registerForActivityResultvalsecondLauncher=registerForActivityResult(ActivityResultContracts.StartActivityForResult()){if(it.resultCode=...
Activity Result API 是一种用于管理 Activity 返回结果的 API。使用该 API 可以简化启动 Activity 并处理返回结果的过程。 2. 使用场景 Activity Result API 主要应用于以下场景: - 启动一个新的 Activity 并获取返回结果。 - 启动一个新的 Activity 并获取权限。 - 启动一个新的 Activity 并获取设备位置信息。
AndroidX从Activity:1.2.0-alpha02 和 Fragment:1.3.0-alpha02 起追加了Result API,使用ActivityResultContract替代startActivityForResult,更加高效且typesafe的处理跨Activity通信。目前Result API已升级到rc版,相对于alpha版API上有所变化,本文内容基于1.2.0-rc-...
Activity Result API 密法 背景 笔者最近在做hybird开发,H5Fragment/H5Activity作为外层容器,它不会有任何业务代码,所有的jsbridge代码分散到不同NativeModule中,例如获取拍照,相册,权限申请等, 这就需要用到startActivityForResult或registerForActivityResult来提供获取返回值的能力,但startActivtyForResult不好用被废弃了...
Activity Result API 密法 背景 笔者最近在做hybird开发,H5Fragment/H5Activity作为外层容器,它不会有任何业务代码,所有的jsbridge代码分散到不同NativeModule中,例如获取拍照,相册,权限申请等, 这就需要用到startActivityForResult或registerForActivityResult来提供获取返回值的能力,但startActivtyForResult不好用被废弃了...
setResult(Activity.RESULT_OK, Intent().putExtra("my-data","data")) finish() } } 源码分析 Result API能以近似回调的形式替代startActivityResult,核心是ActivityResultContract这个协议类。ActivityResultContracts中预置了多个ActivityResultContract的实现,StartActivityForResul便是其中之一。