Activity Result API解析

我们有时候需要用ActivityA 启动ActivityB, ActivityB结束后返回一个结果给ActivityA

这种事情很多人都知道怎么做,无非就是

//ActivityA
startActivityForResult(intent, 200)

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        ----
    }
//ActivityB
setResult(101, ---)

对了我是用kotlin当做代码的,正在学习这个语言。 java也一样的

这种方法很简单,但遗憾的是,当我们查看官方文档得到这样的说明:

虽然所有 API 级别的 Activity 类均提供底层 startActivityForResult()onActivityResult() API,但我们强烈建议您使用 AndroidX Activity 1.2.0-alpha02 和 Fragment 1.3.0-alpha02 中引入的 Activity Result API

既然官方强烈建议,那么我们就看看怎么使用它说的Activity Result API来实现同样的功能

具体为啥强烈建议,给出的原因似乎是:

在启动 Activity 以获取结果时,可能会出现您的进程和 Activity 因内存不足而被销毁的情况;如果是使用相机等内存密集型操作,几乎可以确定会出现这种情况。

但我无法确定老的办法是不是这种情况就会出问题,因为难于测试,感觉又没有测试的必要性,就不管了

哎,还没发版本呢。。。 等发版本了再说吧

 

你可能感兴趣的:(编程语言)