Kotlin 协程基础
什么是协程
协程是一种轻量级的并发方案,可以在同一个线程上挂起和恢复执行,避免回调地狱。
基本使用
kotlin
// 在 ViewModel 中启动协程
viewModelScope.launch {
val data = repository.fetchData()
updateUI(data)
}CoroutineScope
协程必须在作用域内启动:
| 作用域 | 生命周期 |
|---|---|
GlobalScope | 进程级别 |
viewModelScope | ViewModel 销毁时取消 |
lifecycleScope | Activity/Fragment 销毁时取消 |
挂起函数
使用 suspend 关键字标记,可以在协程中安全调用:
kotlin
suspend fun fetchData(): Result {
return withContext(Dispatchers.IO) {
api.getData()
}
}调度器
Dispatchers.Main— UI 线程Dispatchers.IO— 网络/数据库操作Dispatchers.Default— CPU 密集型任务