kotlin: job.join()会等待当前协程执行结束
一,代码:
//处理按钮点击事件
binding.button1.setOnClickListener {
runBlocking {
suspend fun download() {
// 模拟下载任务
delay(1000L)
}
println("得到job")
val job = launch(start = CoroutineStart.LAZY) {
println("协程启动!")
download()
println("协程结束!")
}
delay(500L)
println("start开始")
job.start()
println("start结束")
job.invokeOnCompletion {
println("job执行结束") // 协程结束以后就会调用这里的代码
}
println("join开始")
job.join() // 等待协程执行完毕
println("join结束")
}
}
二,测试效果:
可以看到从join开始,一直等待了1秒钟时间,到执行结束

浙公网安备 33010602011771号