在Activity和Fragment中,我们能直接使用registerForActivityResultAPI ,那是因为ConponentActivity和Fragment基类实现了ActivityResultCaller接口,在非Activity/Fragment中,如果我们想要接收Activity回传的数据,可以直接使用ActivityResultRegistry来实现。 比如,用一个单独...
onActivityResult并没有废弃,但是在Android 10及以上版本中,Google推荐使用ActivityResult API来替代旧的方式。使用ActivityResult API需要引入Activity Result库,具体步骤如下:1.在app的build.gradle中添加依赖:1 2 3 4 5 dependencies { def activity_version = "1.3.0" implementation "androidx.activity:activity-...
在下面的例子中,输入输出类型都是String:classMyActivityResultContract: ActivityResultContract<String,String>(){overridefuncreateIntent(context: Context, input: String?): Intent {return Intent(context,SecondActivity::class.java).apply{putExtra("name",input)}}overridefunparseResult(result...
ActivityResultCallback)} * with the appropriate {@link ActivityResultContract} and handling the result in the * {@link ActivityResultCallback#onActivityResult(Object) callback}. */ @CallSuper @Override @Deprecated protected void onActivityResult(int requestCode, int resultCode, @Nullable...
Google 可能也意识到onActivityResult的这些问题,在androidx.activity:activity:1.2.0-alpha02和androidx.fragment:fragment:1.3.0-alpha02 中,已经废弃了startActivityForResult和onActivityResult方法。 /** * {@inheritDoc} * *@deprecateduse * {@link#registerForActivityResult(ActivityResultContract, ActivityResultCal...
接下来我们通过一个打开文档的示例,来演示如何使用ActivityResultAPI。 首先,您需要在 gradle 文件中添加以下依赖: repositories{google()maven()}dependencies{// 在 https://developer.android.google.cn/jetpack/androidx/releases/activity 获得最新版本号defactivity_version="1.2.0"// 在 https://developer.androi...
Android-ActivityResultAPI 1. 推出目的 如果你将项目中的appcompat库升级到1.3.0或更高的版本,你会发现startActivityForResult()方法已经被废弃了。 现在更加建议使用Activity Result API来实现在两个Activity之间交换数据的功能。 2. 传统写法 - 在两个Activity之间交换数据 ...
通过新的 Activity Result API,我们可以单独的类中处理结果回调,真正做到单一职责。 今天我们就来介绍下: 一、activity results api介绍和使用方法 1、什么是results api Activity Results API 是 Google官方推荐的Activity、Fragment获取返回结果的方式。ActivityResultContract是一个抽象类,也是我们需要定义的协议,它需要...
Android MVVM框架搭建(十)Hilt、ViewBinding、Activity Result API, 在前几篇文章中都是讲解关于MVVM框架中各个控件的使用,本篇文章中将使用JetPack中的组件对项目进行一次解耦。正文
if (!mActivityResultRegistry.dispatchResult(requestCode, resultCode, data)) { super.onActivityResult(requestCode, resultCode, data); } } 可以看到,这两个方法都被标记为了Deprecated,那这两个方法不推荐使用了,Google推荐使用什么方式从Activity中更好的获取数据呢?答案就是Activity Results API ...