在codeLabs教程(Android-Kotlin-带 View 的房间)中,他们使用了“viewModelScope.launch(Dispatchers.IO)”来调用插入方法。到底是什么,为什么用。
参考链接,
https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#8
fun insert(word: Word) = viewModelScope.launch(Dispatchers.IO) {
repository.insert(word)
}
最佳答案
viewModelScope
是与CoroutineScope
绑定(bind)的ViewModel
。这意味着当ViewModel清除了该范围内的协程时,也会被取消。Dispatchers.IO
意味着暂停有趣的repository.insert(word)
将在由kotlin管理的IO线程中运行。
有不同的Dispachres。 Dispatchers.IO用于IO,例如数据库或远程服务器。 Dispatchers.Default用于具有高CPU使用率的任务。 Dispatchers.Main用于需要更新UI的任务。