赞
踩
首先简要介绍一下kotlin协程作用域的三种类型。
类型 | 产生方式 | 异常传播特征 |
---|---|---|
顶级作用域 | GlobalScope创建 | 异常不向外传播。异常到达顶级作用域后,如果还没有被处理,会抛给当前的exceptionHandler,如果没有则给当前线程的uncaughtExceptionHandler |
协同作用域 | Job嵌套、coroutineScope创建 | 异常双传播。异常会向上向下双向传播。 |
主从作用域 | 可通过supervisorScope创建,另外MainScope和lifecycleScope内部设置了 | 异自上而下单项传播。父协程不去受理子协程产生的异常。但是一旦父布局出现了异常,则会直接取消子协程。 |
相关引用,kotlin协程库这里使用的版本是:1.4.2,可点击查看了解目前自己当前kotlin版本对应的协程库版本。
project.ext.kotlin_coroutines_version = "1.4.2"
//kotlin协程标准库 GlobalScope
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
//kotlin协程Android支持 MainScope()
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
//lifecycle
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.3.0"
GlobalScope继承自CoroutineScope。
kotlin协程标准库里面是没有MainScope以及lifecycleScope这些花里胡哨的东西的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。