一、引入:
build.gradle添加配置
kotlin{
experimental {
coroutines 'enable'
}
// Coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'
二、常用接口
1.GlobalScope.launch{}
启动协程
2.runBlocking{}
阻塞当前协程和线程
3.corountineScope{}
阻塞当前协程,不阻塞线程
4.supervisorScope 捕获协程内部的异常可抛出
coroutineScope 和 supervisorScope 将会等待所有的子协程都完成。
5.delay(1000) 延迟当前协程
6.repeat(n){} 重复多次调用,简单函数
7.GlobalScope.async{} 启动异步协程,有返回值 Deffered<>,通过await()获取
8.自创一个协程父类,方便取消:
val job = Job()
val scope = CoroutineScope(job)
scope.launch{//do something }
job.cancel()
9.withTimeout
定义超时,会抛出超时异常,会中断了当前协程的运行。除非try...catch
10. suspend fun 可在launch中调用的函数
11. withContext(Dispatchers.IO){} 可以切换协程线程
Android的协程(Coroutines)基础概念
https://www.jianshu.com/p/ba2bc82ac457