kotlin: 协程作用域
一,代码:
//处理按钮点击事件
binding.button1.setOnClickListener {
runBlocking {
// 仅用于测试,生成环境不要使用这么简易的CoroutineScope
val scope = CoroutineScope(Job())
scope.launch {
logX("第一个协程 start!")
delay(1000L)
logX("第一个协程 end!") // 不会执行
}
scope.launch {
logX("第二个协程 start!")
delay(1000L)
logX("第二个协程 end!") // 不会执行
}
scope.launch {
logX("第三个协程 start!")
delay(1000L)
logX("第三个协程 end!") // 不会执行
}
delay(500L)
scope.cancel() //取消了作用域内3个协程的运行
delay(1000L)
}
}
说明: CoroutineScope,也就是“协程作用域”,
CoroutineScope 最大的作用,就是可以方便我们批量控制协程
二,运行结果:
作用域中的三个协程,都没有执行到end字串的打印