在Android开发中,我们经常使用startActivityForResult来获取activity执行完操作的返回值,但是在新版本的AndroidX中已经推荐使用Activity Result API来替换它。
ActivityResultLauncher的使用用法
以上是ActivityResultLauncher最简单的用法,直接使用StartActivityForResult作为约定,在实际开发中,使用ActivityResultLauncher分为三步。
如果要使用ActivityResultLauncher,首先需要引入依赖库,最新版本参考官方文档。
比如说,我们在启动Activity时需要传入Int类型的参数,在执行完Activity之后得到String类型结果,我们可以这样创建约定。
这样其实是把封装和解析Intent的工作摘出来了,减轻Activity的工作量,遵循了单一职责原则。
使用registerForActivityResult方法注册上一步创建的约定,并且传入一个ActivityResultCallback回调,用于处理Activity处理之后返回的结果。
我们只需要调用第二步创建的activityLauncher.launch(..)方法即可启动Activity,并且传入我们指定的Int类型的参数。
另外,它还可以用来简化申请运行时权限,我们可以使用RequestPermission和RequestMultiplePermissions约定来申请单个或多个运行时权限,比如申请相机权限,这部更多内容可以参考官方文档。
下面是一个完整的示例项目。
文件 | 大小 | 修改时间 |
---|---|---|
app | 2022年07月06日 | |
build.gradle | 357 B | 2022年07月06日 |
gradle/wrapper | 2022年07月06日 | |
gradle.properties | 1 kB | 2022年07月06日 |
gradlew | 6 kB | 2022年07月06日 |
gradlew.bat | 3 kB | 2022年07月06日 |
local.properties | 437 B | 2022年07月06日 |
settings.gradle | 331 B | 2022年07月06日 |