viewModelScope.launch(Dispatchers.IO) 目的

Gou*_*ham 7 android viewmodel kotlin

在 codeLabs 教程(Android - Kotlin - Room with a 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)
}
Run Code Online (Sandbox Code Playgroud)

Ehs*_*uri 15

viewModelScope是一个CoroutineScope与你联系在一起的ViewModel. 这意味着当 ViewModel 清除该范围内的协程时,该范围内的协程也会被取消。

Dispatchers.IO意味着暂停乐趣repository.insert(word)将在 kotlin 管理的 IO 线程中运行。

有不同的调度员。Dispatchers.IO 用于数据库或远程服务器等 IO 工作。Dispatchers.Default 用于 CPU 使用率较高的任务。Dispatchers.Main 用于需要更新 UI 的任务。

  • @迈克是的。所有访问数据库的存储库挂起函数都应该使用 Dispatchers.IO 执行 (6认同)