这部分代码并没有被废弃,Activity Result API也与它无关。 FirstActivity中的代码,我们需要使用Activity Result API来替代startActivityForResult()的写法,如下所示: 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 classFirstActivity:AppCompatActivity(){privateval requestDataLauncher=registerForActivity...
后来思维转过来弯之后发现,原来Activity Result API根本就不需要requestCode这种东西,我们可以使用如下写法来实现和刚才完全一样的功能: classFirstActivity:AppCompatActivity() {privatevalactionViewLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->// Handle result for ...
上节《【Jetpack】学穿:Activity Results API》说过,在重构公司项目的BaseFragment时,遇到onRequestPermissionResultDeprecated的问题,顺带系统地学了一波Activity Results API相关的姿势。 项目中,把申请权限相关的操作都塞到BaseActivity/BaseFragment中,可以,但不太优雅,很多子类Activity/Fragment被迫继承了这个用不到的功能。
第一个Activity // 接收第二个Activity返回的回调privatevalrequestDataLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->if(result.resultCode == RESULT_OK) {valdata= result.data?.getStringExtra("data") Toast.makeText(this,data, Toast.LENGTH_LONG).show(...
在非Activity/Fragment的类中接收Activity的结果在Activity和Fragment中,我们能直接使用registerForActivityResultAPI ,那是因为ConponentActivity和Fragment基类实现了ActivityResultCaller接口,在非Activity/Fragment中,如果我们想要接收Activity回传的数据,可以直接使用ActivityResultRegistry来实现。 比如,用一个单独的类来实现协议...
上节《【Jetpack】学穿:Activity Results API》说过,在重构公司项目的BaseFragment时,遇到onRequestPermissionResultDeprecated的问题,顺带系统地学了一波Activity Results API相关的姿势。 项目中,把申请权限相关的操作都塞到BaseActivity/BaseFragment中,可以,但不太优雅,很多子类Activity/Fragment被迫继承了这个用不到的功能...
③ ActivityResultCallback → 结果回调 第二个入参,见名知意:启动Activity并返回当前Activity时的 结果回调。 就定义了一个回调方法,Activity Result API 又是 模版方法模式 封装的思想体现,开发仔按需注入 协定类型 和 结果回调 即可,无需关注底层细节。巴适得很!
Activity Result API 密法 背景 笔者最近在做hybird开发,H5Fragment/H5Activity作为外层容器,它不会有任何业务代码,所有的jsbridge代码分散到不同NativeModule中,例如获取拍照,相册,权限申请等, 这就需要用到startActivityForResult或registerForActivityResult来提供获取返回值的能力,但startActivtyForResult不好用被废弃了...
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,真正的支持在非Activity和Fragment中调用 支持不用在onResume()之前初始化ActivityResultLauncher 支持ARouter 支持Kotlin和Java用法 Kotlin扩展,使用简单 如何使用 step 1.在根目录的build.gradle添加: allprojects { repositories { ...