测试下async异步协程构建器:

private fun testAsync() {
        Log.d("zxzx", "onCreate方法执行testAsync函数,线程:${Thread.currentThread().name}")
        lifecycleScope.launch{
            val deferred1 = async(Dispatchers.IO) {
                Log.d("zxzx", "task1 模拟网络请求开始,线程:${Thread.currentThread().name}")
                delay(2000)
                "结果1"
            }
            val deferred2 = async(Dispatchers.Default) {
                Log.d("zxzx", "task2 模拟网络请求开始,线程:${Thread.currentThread().name}")
                delay(3000)
                "结果2"
            }

            // 等待两个异步任务都完成,并获取结果
            val result1 = deferred1.await()
            val result2 = deferred2.await()

            Log.d("zxzx", "最终结果:$result1 + $result2, Thread: ${Thread.currentThread().name}")
        }
        Log.d("zxzx", "onCreate方法结束执行,线程:${Thread.currentThread().name}")
        Log.d("zxzx", "伤哉龙受困,不能越深渊。上不飞天汉,下不见于田。蟠居于井底,鳅鳝舞其前。藏牙伏爪甲,嗟我亦同然!")
    }

在onCreate方法中调用,运行打印:

ok. async很适合这种异步调用。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐