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的点击结果:

posted @ 2025-07-26 11:39  刘宏缔的架构森林  阅读(17)  评论(0)    收藏  举报