android - viewModelScope.launch(Dispatchers.IO) 用途

标签 android kotlin viewmodel

在 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)
}

最佳答案

viewModelScopeCoroutineScope这与您的 ViewModel 相关联.这意味着当 ViewModel 清除该范围内的协程时,也会取消。Dispatchers.IO表示暂停乐趣repository.insert(word)将在 kotlin 管理的 IO 线程中运行。
有不同的调度。 Dispatchers.IO 用于 IO 工作,如数据库或远程服务器。 Dispatchers.Default 用于 CPU 使用率较高的任务。 Dispatchers.Main 用于需要更新 UI 的任务。

关于android - viewModelScope.launch(Dispatchers.IO) 用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55974539/

相关文章:

asp.net-mvc - 你把你的验证放在 asp.net mvc 3 的什么地方?

java - 未注册单选按钮的更改

android - 如何减小 apk 文件的大小?

android - 我可以在 Android 的 getView() 方法中调用 setContentView() 方法吗?

android - 应用程序如何知道设备已经安装了该应用程序并将其从推荐奖金中消除?

ios - Xamarin Form : ListView causing Specified argument was out of the range of valid values. 参数名称:index

android - 为什么 realm 包含所有 CPI 架构的 .so 库,即使启用了拆分?

android - 向 Android Kotlin 类添加可选参数

android - BaseClass 中的 Kotlin 泛型。试图通过 BaseFragment 中的泛型类型获取 ViewModel

c# - 如何从 ViewModel 访问 View 控件?