viewModelScope.launch(Dispatchers.IO) 目的
viewModelScope.launch(Dispatchers.IO) purpose
在 codeLabs 教程(Android - Kotlin - Room with a View)中,他们使用 "viewModelScope.launch(Dispatchers.IO)" 调用插入方法。它到底是什么以及为什么使用它。
参考link,
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
是与您的 ViewModel
绑定的 CoroutineScope
。这意味着当 ViewModel 清除了该范围内的协同程序时,它也会被取消。
Dispatchers.IO
表示 suspend fun repository.insert(word)
将 运行 在由 kotlin 管理的 IO 线程中
有不同的 Dispachres。 Dispatchers.IO 用于数据库或远程服务器等 IO 工作。 Dispatchers.Default 用于 CPU 使用率高的任务。 Dispatchers.Main用于需要更新UI的任务。
在 codeLabs 教程(Android - Kotlin - Room with a View)中,他们使用 "viewModelScope.launch(Dispatchers.IO)" 调用插入方法。它到底是什么以及为什么使用它。 参考link,
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
是与您的 ViewModel
绑定的 CoroutineScope
。这意味着当 ViewModel 清除了该范围内的协同程序时,它也会被取消。
Dispatchers.IO
表示 suspend fun repository.insert(word)
将 运行 在由 kotlin 管理的 IO 线程中
有不同的 Dispachres。 Dispatchers.IO 用于数据库或远程服务器等 IO 工作。 Dispatchers.Default 用于 CPU 使用率高的任务。 Dispatchers.Main用于需要更新UI的任务。