kotlin-flow相关内容
我见过推荐切换到StateFlow的文章。 就像here。 同样在新的Android工作室中,StateFlow支持自动包含在数据绑定的功能中,包括协程依赖。 大多数应用程序已经在使用实时数据。 我们是否应该从LiveData迁移到StateFlow?有什么好处? 推荐答案 状态流和实时数据没有太大区别。主要区别在于State flow需要初始值,因此不需要检查是否为空。第二个不同之处
..
建议不要使用GlobalScope和runBlock。 我已经对这个主题进行了更改: End flow/coroutines task before go further null issue 然而,它不能像以前使用runBlock那样工作良好。简而言之,图标不变,数据不准时。 我的案例是根据布尔值更改图标。 对流程使用案例 class GetNotificationListI
..
我使用MVVM从FiRestore获取用户数据。在我使用的存储库类中: fun getUserData() = flow { auth.currentUser?.apply { val user = ref.document(uid).get().await().toObject(User::class.java) user?.let {
..
我创建了以下扩展函数: fun Flow.handleErrors(showError: Boolean = false, retry: Boolean = false, navigateBack: Boolean = true): Flow = catch { throwable ->
..
片段 private fun makeApiRequest() { vm.getRandomPicture() var pictureElement = vm.setRandomPicture() GlobalScope.launch(Dispatchers.Main) { // what about inter
..
我的存储库层有一个MutableStateFlow,将其收集到我的ViewModel中。我在某些用户设备上收到此NPE Fatal Exception: java.lang.NullPointerException at a.b.c.ui.viewmodel.HomeViewModel$collectFlowState$$inlined$collect$1.emit(HomeV
..
如果我们有两个这样定义的流: val someflow = flow { emit("something") } 和另一个定义如下的流: val stateFlow = MutableStateFlow("some value") 是否可以将这两个流合并为仅发出someflow或stateFlow发出的最后一个值的单个流? 的想法是stateFlow可能在将来的某
..
我有以下代码: val channel = BroadcastChannel(10) fun setup() { scope.launch { channel.asFlow(). .flatMapLatest { fetchSomeData() } .catch { emit(DefaultData())
..
当尝试从流中收集时,类型突然不匹配,它正在工作,然后突然启动。 在我的视图模型中: class MyViewModel: ViewModel() { lateinit var river: Flow fun doStuff() { river = flow { emit(1) }.flowOn(Dis
..
我从一个房间数据库里得到了一系列的剧情。 我可以将此流作为实时数据进行观察,没有任何问题。 但我也想在用户单击按钮时从该流中读取最后一个值。我尝试使用first()终端流运算符,但它不能编译。您能帮个忙或提点别的建议吗? 非编译尝试读取流: bd.buttonNext.setOnClickListener { lifecycleScope.launch {
..
当用户快速点击按钮时,showDialog() 方法会在彼此的顶部显示多次,因此当您关闭它时,它后面还有另一个.我正在寻找一种方法来忽略第二次点击 1 秒而不使用处理程序或检查前一次点击的时间. //打开对话框的按钮button.setOnClickListener {显示对话框()} 我正在寻找使用 Kotlin 协程或 Kotlin 流程的解决方案以供将来实现. 解决方案 最好使用
..
最近介绍 类 StateFlow 作为 Kotlin 协程的一部分. 我目前正在尝试,但在尝试对我的 ViewModel 进行单元测试时遇到问题.我想要实现的目标:测试我的 StateFlow 是否在我的 ViewModel 中以正确的顺序接收所有状态值. 我的代码如下: 视图模型: class WalletViewModel(private val getUserWallet
..
我的问题实际上很笼统.我想知道如何对 Room Dao 查询进行单元测试,该查询从 Paging 3 返回 PagingSource.> 我有一个房间 Dao 查询: @Query(“SELECT * FROM database")fun getChocolateListData(): PagingSource 我想知道如何对这个查询进行单元测试. 到目前为止我尝试过的(使用内存Ro
..
我正在尝试为 networkBoundResource 的 kotlin 版本编写一个单元测试,该版本可以在 serveral 上找到来源具有多项功能 这是我对以下问题的标记评论版本. inline fun 网络绑定资源(...coroutineDispatcher: CoroutineDispatcher) = 流量 {发射(Resource.loading(null))//发射有效!v
..
我的 ViewModel 有一个返回 PagingData 流的方法.在我的应用程序中,数据是从远程服务器上获取的,然后保存到 Room (房间的唯一来源): fun getChocolates():流>{val pagesSourceFactory = {dao().getChocolateListData()}返回传呼机(config = P
..
GlobalScope或自定义的CoroutineScope实例都不起作用: import kotlinx.coroutines.* import kotlinx.coroutines.flow.* fun makeFlow() = flow { println("sending first value") emit(1) println("first value
..
我在Android应用中使用以下代码将数据从远程源加载到本地数据库缓存中. inline fun networkBoundResource( crossinline query: () -> Flow, crossinline fetch: suspend () -> RequestType,
..
我正在这样创建MutableStateFlow: val intSet = MutableStateFlow(HashSet()) 稍后,我想在此流程中更新集合: intSet.value.add(0) 这似乎不起作用(集合已更新,但未通知观察者). 我发现它起作用的方式: val list = HashSet(intSet.value) list.a
..
我有一个List>,并且想生成一个Flow>.这几乎是 combine 可以-只是Combine等待每个Flow发出初始值,这不是我想要的.以下面的代码为例: val a = flow { repeat(3) { emit("a$it") delay(100) } } val b = flow { repeat(3) { d
..
最近“>引入了类StateFlow作为Kotlin协程的一部分. 我正在尝试对ViewModel进行单元测试时遇到问题.我要实现的目标是:测试我的StateFlow是否在ViewModel中以正确的顺序接收了所有状态值. 我的代码如下: ViewModel: class WalletViewModel(private val getUserWallets: GetUersW
..