Kotlin 协程的简单使用
1. 关于协程
协程(Coroutines)和线程(Threads)是两个完全不同的概念,简单来说协程跑在线程中,线程跑在进程中。
2. Android 中的简单使用
1. 导入
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.5"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.5" // Android
2. 协程的创建
- 方式1:通过
runBlocking()
顶层函数创建
runBlocking{
// do something
}
该方法会阻塞当前线程来等待,在开发过程中很少用的到。
- 方式2:通过
GlobalScope.launch()
创建
val job: Job = GlobalScope.launch {
// do something
}
// 可以调用 cancel() 方法取消
job.cancel()
该方法创建的生命周期会与 App 的生命周期一致,它与
runBlocking()
的区别在于不会阻塞线程,但是在 Android 开发中也不常使用。
- 方式2:通过
CoroutineContext
创建一个CoroutineScope
对象
val job = Job()
val scope = CoroutineScope(Dispatchers.Main + job)
scope.launch{
// do something (在主线程中执行)
}
// 可以调用 cancel() 方法取消
job.cancel()
该方式比较常用 。