98得票5回答
Kotlin Flow与Android LiveData的比较

我有关于Kotlin Flow的一些问题: 我可以从多个Fragment中观察LiveData,那么我能否使用Flow实现呢?如果可以,应该如何实现? 我们可以使用map和switchMap从单个LiveData中获取多个LiveData。那么,是否有办法从单个源Flow中获取多个Flow呢...

74得票7回答
Kotlin Flow的Collect只是kotlinx.coroutines API中的内部API吗?

参考 https://kotlinlang.org/docs/reference/coroutines/flow.html#flows-are-cold 的示例。 fun simple(): Flow<Int> = flow { println("Flow starte...

43得票3回答
类型不匹配,推断出的类型为() -> Unit,但期望的是FlowCollector<Int>。

当尝试从Flow中收集数据时,发现类型突然不匹配,而之前一直可以正常工作。 在我的ViewModel中:class MyViewModel: ViewModel() { lateinit var river: Flow&lt;Int&gt; fun doStuff() {...

38得票2回答
何时使用collect和collectLatest运算符来收集Kotlin Flow?

我希望了解它们的实际应用场景。虽然我知道它们的区别,但无法将其与我的实现联系起来。

37得票8回答
使用单元测试对新的Kotlin协程StateFlow进行测试

最近,作为Kotlin协程的一部分,StateFlow 类被引入。 我目前正在尝试使用它,并在尝试对我的 ViewModel 进行单元测试时遇到了问题。我想要实现的是:测试我的 ViewModel 中的 StateFlow 是否按正确顺序接收所有状态值。 我的代码如下: ViewMode...

31得票4回答
LiveData和StateFlow:我们应该从LiveData转换到StateFlow吗?

我看到有些文章推荐使用StateFlow技术,比如这里的文章。 此外,在新版Android Studio中,StateFlow已经自动包含在数据绑定的功能中,包括协程依赖项。 LiveData已经被大部分应用程序所使用。 我们该从LiveData迁移到StateFlow吗?有哪些好处呢?

31得票5回答
如何从不同的函数中发出Flow值?Kotlin协程

我有一个流程:val myflow = kotlinx.coroutines.flow.flow&lt;Message&gt;{} 并希望使用函数发出值:override suspend fun sendMessage(chat: Chat, message: Message) { m...

29得票2回答
安卓Kotlin协程:flow、callbackFlow、channelFlow等其他流构造函数有什么区别?

我有一段代码,应该将SharedPreferences更改为可观察的存储方式,并使用Flow进行更新。代码如下:internal val onKeyValueChange: Flow&lt;String&gt; = channelFlow { val callback = Sh...

26得票5回答
如何在协程外获取Flow的值?

如何类似于 LiveData 在协程之外获取 Flow 的值?// Suspend function 'first' should be called only from a coroutine or another suspend function flowOf(1).first() // ...

22得票5回答
从另一个Fragment/ViewModel执行插入操作时,从Room返回的Kotlin Flow不会更新

我有一个Room数据库,返回对象的Flow。当我在数据库中插入一个新项时,只有在相同的Fragment/ViewModel中执行插入操作时,Flow的collect函数才会触发。我录制了一个展示该问题的快速视频:https://www.youtube.com/watch?v=7HJkJ7M1W...