kotlin: 协程的生命周期(CoroutineStart.LAZY)
一,生命周期示意图
引用自极客时间朱老师
二,代码:
binding.button1.setOnClickListener {
runBlocking {
val job = launch {
println("launch开始")
delay(1000L)
println("launch结束")
}
job.log() // ①
delay(100L)
job.cancel() // ②
job.log() // ③
delay(1500L)
}
}
//处理按钮点击事件
binding.button2.setOnClickListener {
runBlocking {
val job = launch(start = CoroutineStart.LAZY) {
logX("launch协程 启动!")
delay(1000L)
logX("launch协程 结束!")
}
delay(500L)
job.log()
job.start() // 变化在这里
job.log()
delay(500L)
job.cancel()
delay(500L)
job.log()
delay(2000L)
logX("处理结束!")
}
}
三,运行结果:
button1的点击结果:
button2的点击结果: