启动模式那块说的好像有点问题。

来源:13-1 协程框架概述

慕前端9039556

2020-11-24

如果调度器为Dispatchers.Main.immediate. 在主线程中启动launch ,即使启动模式default。那么第一个resume也永远不会被cancel

lifecycleScope.launch(start = CoroutineStart.DEFAULT){
    log(Thread.currentThread().name+"================1111=================")
    log(Thread.currentThread().name+"================2222=================")
    log(Thread.currentThread().name+"================3333=================")
    log(Thread.currentThread().name+"================4444=================")
    log(Thread.currentThread().name+"================5555=================")
    Thread.sleep(100)
    log(Thread.currentThread().name+"================6666=================")
    log(Thread.currentThread().name+"================7777=================")
    log(Thread.currentThread().name+"================8888=================")
    log(Thread.currentThread().name+"================9999=================")

}.cancel()

结果是全部打印出来。


写回答

1回答

bennyhuo

2020-11-24

immediate 是直接执行,所以应该取消不了

0
1
慕前端9039556
非常感谢!
2020-11-25
共1条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程