- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当大多数用例都用作后台线程时,viewModelScope
默认为 MainThread 的原因是什么?
在我的项目中,我仍然想不出一个需要在 ViewModel 中使用主线程的示例。
另外,有没有比下面这样写更好/更短的方法?
viewModelScope.launch(Dispatchers.Default) {
// codes here
}
最佳答案
几个原因:
总的来说,我认为这是一个很好的做法,不要在 VM 中处理线程切换并在层上处理,这基本上知道将运行哪种操作。例如,如果您有一个 VM -> Repository -> LocalSource(数据库操作)和 RemoteSource(网络),那么我会切换到远程和本地源中的 IO
线程。
关于android - viewModelScope 默认为 MainThread 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65210482/
我试图:import androidx.lifecycle.viewModelScope 并且我得到未解析的引用。我尝试了旧的 StackOverflow 链接,提到我必须将实现的版本更改为 2.2.
我正在尝试在我最新的 Android 应用程序中使用 MVVM。我也在使用协程。我有 ViewModel,它使用 koin 注入(inject)到 Activity 中。为了在我的 ViewModel
看完Sean's explanation on Android (Google I/O'19)我也试过: init{ viewModelScope.launch { Timbe
我正在尝试在我的 android 项目 android studio 中使用 viewModelScope.launch(Dispatchers.IO) 显示错误“ Unresolved refere
当大多数用例都用作后台线程时,viewModelScope 默认为 MainThread 的原因是什么? 在我的项目中,我仍然想不出一个需要在 ViewModel 中使用主线程的示例。 另外,有没有比
我想注入(inject) viewModelscope,但我做不到。 class PostPageSource @Inject constructor( val repository: MyRepos
我有一个 SharedFlow .当ViewModel已创建,我将值更改为 Val1 .之后,我使用 viewModelScope对 3 seconds 进行一些虚假的延迟然后将值更改为 Val2 .
在下面的代码 fragment 中,如何在 viewModelScope.launch 完成后获取 isValid 的值。 viewModelScope.launch 最后在 fun checkCod
viewPager 中有 fragment ,每个 fragment 都有一个 viewModel。 当 viewpager 的当前项目改变时,fragment 被销毁,viewModel onCle
我试图理解为什么是 ActivityRetainedScoped在 Hilt 中为 DI 引入。在我看来,范围与 ViewModelScoped 相同。应该做。我的印象是作用域是这样工作的:AppSc
我正在检查我的问题的答案,我发现这是版本问题,但我无法检查我必须使用的正确版本..也许有一些建议?提前致谢。 我的构建: implementation "org.jetbrains.kotlin:ko
以下代码来自project . 1:在我看来,一个挂起乐趣应该在另一个挂起乐趣或 viewModelScope.launch{ }, withContext{ } ... , 中启动filterIte
我正在尝试从数据库中检索单个条目,并在 viewModelScope 的帮助下成功地将值返回到我的 View 模型中,但我希望将此值返回给驻留在 fragment 中的调用函数,以便它可以是显示在 T
最近我更新了我的ViewModel使用新的 viewModelScope .从它的实现中,我看到 Dispatchers.Main.immediate设置为默认值 CoroutineDispatche
我想测试 ViewModel 收集 Flow 的方法。在收集器内部,LiveData 对象发生了变化,我想最后检查一下。设置大致如下: //Outside viewmodel val f = flow
我正在使用 viewModelScope在 ViewModel它调用存储库中的挂起函数,如下所示: 查看型号 class DeepFilterViewModel(val repo: DeepFilte
在 codeLabs 教程(Android - Kotlin - Room with a View)中,他们使用“viewModelScope.launch(Dispatchers.IO)”来调用插入
我正在尝试在我的应用程序中将这两个构建器用于协程,但在我的 ViewModel 中我无法导入它们或它们不会弹出。 这些是我的依赖项: implementation "androidx.lifec
我在这里阅读如何使用协程 https://developer.android.com/topic/libraries/architecture/coroutines .让我感到困惑的是 LiveDat
我正在尝试使用新的 android ktx 库提供的新 viewModelScope() 函数。 在 gradle 文件中,我添加了: implementation 'androidx.lifecyc
我是一名优秀的程序员,十分优秀!