首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

androidx中已弃用的OnActivityResult()

在Android开发中,androidx是一个用于支持库和工具的开源项目,旨在简化Android应用程序的开发过程。在androidx中,OnActivityResult()方法已被弃用。

OnActivityResult()方法是在Activity中使用的一个回调方法,用于处理从其他Activity返回的结果。它通常与startActivityForResult()方法一起使用,用于启动另一个Activity并等待其返回结果。

然而,在androidx中,推荐使用新的ActivityResultContract API来处理Activity之间的结果传递。ActivityResultContract API提供了一种更简洁、类型安全的方式来处理ActivityResult,并且可以更好地与Jetpack组件集成。

使用ActivityResultContract API,您可以定义一个合同(Contract),该合同指定了输入和输出的类型,并定义了如何启动目标Activity以及如何处理返回的结果。这种方式更加灵活,易于维护和测试。

以下是使用ActivityResultContract API的示例代码:

代码语言:txt
复制
// 定义一个合同
class MyContract : ActivityResultContract<Uri, Boolean>() {
    override fun createIntent(context: Context, input: Uri): Intent {
        // 创建启动目标Activity的Intent
        val intent = Intent(context, TargetActivity::class.java)
        intent.data = input
        return intent
    }

    override fun parseResult(resultCode: Int, intent: Intent?): Boolean {
        // 处理返回结果
        return resultCode == Activity.RESULT_OK
    }
}

// 在Activity中使用合同
class MyActivity : AppCompatActivity() {
    private val launcher = registerForActivityResult(MyContract()) { result ->
        // 处理返回结果
        if (result) {
            // 成功处理结果
        } else {
            // 处理失败
        }
    }

    private fun startTargetActivity() {
        val input = Uri.parse("example://data")
        launcher.launch(input)
    }
}

在上述示例中,我们定义了一个自定义的合同(MyContract),它指定了输入类型为Uri,输出类型为Boolean。在createIntent()方法中,我们创建了启动目标Activity的Intent,并将输入数据传递给它。在parseResult()方法中,我们根据返回的结果代码和Intent来处理返回结果。

在MyActivity中,我们使用registerForActivityResult()方法注册了合同,并在回调中处理返回结果。在startTargetActivity()方法中,我们使用launcher.launch()方法启动目标Activity,并传递输入数据。

总结一下,androidx中已弃用的OnActivityResult()方法被推荐使用ActivityResultContract API来处理Activity之间的结果传递。ActivityResultContract API提供了一种更简洁、类型安全的方式来处理ActivityResult,并且可以更好地与Jetpack组件集成。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

11分42秒

20-MetPy气象编程,库弃用属性够的警告

3分26秒

【算法】数据结构中的栈有什么用?

8分20秒

尚硅谷_10-弃用ParallelScavenge和SerialOld GC组合

4分3秒

用ROS、Gazebo和Simulink中的机器人系进行四旋翼飞机控制和模拟

4分31秒

【软件演示】抖音主页作品采集,可监控目标账号的最新作品

9分51秒

🔥用这些技术开发网站能事半功倍!来看看你用过没

4分6秒

Python Scrapy抓取已发布的博客信息【开发闲谈】

1.2K
24秒

LabVIEW同类型元器件视觉捕获

1分21秒

11、mysql系列之许可更新及对象搜索

16分48秒

第 6 章 算法链与管道(2)

14分24秒

分布式训练和NVLink&NVSwitch关系【AI芯片】GPU详解04

3.5K
-

中国首位人工智能“外交官”上任,她一开口,外国网友炸锅了

领券