- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿,我正在学习 kotlin 中的流程。我正在学习 可变状态流 和 可变共享流 .我努力学习 可变状态流 在现实世界的例子中。但我无法获得 可变共享流 例如,它更适合哪个地方。我尝试了一些 可变状态流
例如,当我们从 api 获取数据时,我们可以使用 seal 类进行相应的填充。
LoggedState.kt
sealed class LoggedState {
data class OnSuccess(val data: List<XYZ>) : LoggedState()
object OnEmpty : LoggedState()
data class IsLoading(val isLoading: Boolean = true) : LoggedState()
data class OnError(val message: String) : LoggedState()
}
SettingsViewModel.kt
class SettingsViewModel : ViewModel() {
var loggedMutableStateFlow = MutableStateFlow<LoggedState>(LoggedState.OnEmpty)
fun fetchData(){
val result = dataRepository.getLogged()
result.handleResult(
onSuccess = { response ->
val data = response?.items
if (!data.isNullOrEmpty()) {
loggedMutableStateFlow.value = LoggedState.OnSuccess(data)
} else {
loggedMutableStateFlow.value = LoggedState.OnEmpty
}
},
onError = {
loggedMutableStateFlow.value = LoggedState.OnError(it.message)
}
)
}
}
Activity .kt
lifecycleScope.launchWhenCreated {
repeatOnLifecycle(Lifecycle.State.CREATED) {
viewModel.loggedMutableStateFlow.collect { state ->
when (state) {
is LoggedState.OnEmpty -> {
// view gone
}
is LoggedState.OnSuccess -> {
// show ui
}
is LoggedState.IsLoading -> {
// show spinner
}
is LoggedState.OnError-> {
// show error message
}
}
}
}
}
我都得到了
可变状态流 例子。有人可以指导我怎么做
MutableSharedFlow在现实世界的例子中。我也对参数很好奇
最佳答案
MutableStateFlow
类似于 MutableLiveData
, 两者都有 .value
访问值或更改值。MutableSharedFlow
类似于 SingleLiveEvent
, 用于观察 即时状态变化。
更多示例和教程,您可以观看此视频:https://youtu.be/6Jc6-INantQ
关于android - Android kotlin 中 SharedFlow 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71067219/
我有一个生成消息的 JMS 队列。我想与多个 Kotlin 消费者共享这些消息,但前提是连接了 Kotlin 消费者。如果 Kotlin 消费者仅激活 5 分钟,它应该只在该窗口内接收消息。 Kotl
在我的 ViewModel 中,我发出 API 请求并使用 StateFlow 和 SharedFlow 与 fragment 通信。在发出 API 请求时,我可以轻松地更新状态流的值并成功收集到 f
我有一个 SharedFlow .当ViewModel已创建,我将值更改为 Val1 .之后,我使用 viewModelScope对 3 seconds 进行一些虚假的延迟然后将值更改为 Val2 .
我试图使用 sharedFlow 将事件从 UI 传递到 viewModel 这是我的 View 模型类 class MainActivityViewModel () : ViewModel() {
我有一个使用三个 LiveData 源的 MediatorLiveData。当它们中的任何一个发出一个新值并且我每个都有一个时,我使用这三个值来生成 UI 的输出。 其中两个来源是关于如何对列表进行排
和 有什么区别?共享流 和 状态流 ? 以及如何在 中使用这些MVI 建筑学?使用简单 更好吗?流量 还是这些状态和事件? 最佳答案 Flow 很冷!,这意味着它仅在收集数据时才发出数据。 Flow
我第一次潜入 Kotlin Flow,我想知道 ViewModel 是否还有一席之地。 ViewModel 的优势在于它具有生命周期感知能力,并且会在 Activity 被销毁时自动取消对 ViewM
我有一个具有以下属性的 android viewmodel 类 private val _trainingNavigationEvents = MutableSharedFlow(replay = 0
嘿,我正在学习 kotlin 中的流程。我正在学习 可变状态流 和 可变共享流 .我努力学习 可变状态流 在现实世界的例子中。但我无法获得 可变共享流 例如,它更适合哪个地方。我尝试了一些 可变状态流
我正在合并两个 SharedFlows,然后执行一个长时间的工作操作。 一开始,我知道状态,所以我为两个流发出一个“起始值”。之后,用户可以发送到任一流。 这两个流大多是独立的,但在特定情况下,用户可
我读过类似的主题,但找不到正确的答案: How to end / close a MutableSharedFlow? Kotlin Flow: How to unsubscribe/stop Sta
我是一名优秀的程序员,十分优秀!