- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这就是我试图用 Flow
做的事情, 我正在展示 ProgressBar
在onStart
并试图隐藏 ProgressBar
在onCompletion
.
在 ViewModel 类中 appDatabase.eventDao().getAllEvents()
返回 Flow<List<EntityEvents>
@ExperimentalCoroutinesApi
val allEvents: LiveData<Outcome<List<Event>>> = _fetchEvents.switchMap { _ ->
appDatabase.eventDao().getAllEvents()
.map { eventListMapper.map(it) }
.map { sortEventsBasedOnPreference(it) }
.flowOn(Dispatchers.IO)
.map { Outcome.success(it) }
.onStart { emitLoading(true) }
.onCompletion { emitLoading(false) }
.catch { emitFailure(it, R.string.err_something_wrong) }
.asLiveData(context = viewModelScope.coroutineContext)
}
一切正常,我无法弄清楚为什么是 onCompletion
任务完成时不调用?
最佳答案
如果 appDatabase.eventDao().getAllEvents()
基于 Room on Flow,则从不调用 onCompletion()
。
为什么?
因为 getAllXXX()
查询是“热门”。实际上,查询并没有完成。仅发出数据。
当数据发生变化时,查询将再次发出数据。
关于android - 将 Koltin Flow 与 LiveData 一起使用时未调用 onCompletion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59880680/
fun getObjectMapper(): ObjectMapper { return ObjectMapper().registerModule( JavaTimeModule().addSeri
启动协程时,它可能只是创建一个 CoroutineScope 并从中调用 launch{} -- doSomething_2(), 或从 CoroutineScope 派生类并使用要启动的类{}。 -
我正在尝试在 koltin 中实现可扩展的 recylerveiew:我尝试使用以下代码: val DataItems = arrayListOf() val ChildDataItems = arr
我需要将现有的多模块 jvm 项目转换为多平台项目。 //Exisiting Modules: (JVM Project) core data app app_server utils db //Ne
这就是我试图用 Flow 做的事情, 我正在展示 ProgressBar在onStart并试图隐藏 ProgressBar在onCompletion . 在 ViewModel 类中 appDatab
根据 the commentary of this answer , 使用 CountDownTimer val timer=object:CountDownTimer(Long.MAX_VALUE,
我试图在我的 Kotlin 模型类中生成 Getter 和 Setter,而无需手动编写代码,但这些选项没有显示在 Android Studio 的生成菜单中。 我的模型类 (Kotlin) impo
我是一名优秀的程序员,十分优秀!