首页
学习
活动
专区
圈层
工具
发布

Android SingleLiveEvent Redux with Kotlin Flow

我觉得仍有改进的余地,尤其是在使用Kotlin的coroutines和flow时。在这篇文章中,我将描述我如何处理一次性事件,以及如何在Android生命周期中安全地观察这些事件。...A Safe Emitter of Events 因此,满足第一个要求,很明显,一个流是必要的。...LiveData或任何conflates Kotlin flow,如StateFlow或ConflatedBroadcastChannel,都不合适。...A Safe Observer of Events Android Framework强加给开发者的不同的生命周期可能很难处理。许多操作只能在某些生命周期状态下安全地执行。...minActiveState = Lifecycle.State.RESUMED) { // do things } 原文链接:https://proandroiddev.com/android-singleliveevent-redux-with-kotlin-flow-b755c70bb055

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    了解 Kotlin Flow(一)

    关于 Flow 的知识点有如下一些: Flow 的基本使用 StateFlow 和 SharedFlow 的使用和基本原理 StateFlow、SharedFlow 在 Android 中使用的时候和...LiveData 的比较 基础使用 Kotlin 里 Flow 的基本用法是使用一个 flow 方法创建 Flow 对象: flow {} 需要更新值的时候,在代码块内使用 emit 方法发射值。...检查 Flow 的不可变性。...在日常开发中,普通的 Flow API 只能有一个 collect 的地方,并不能满足我们的需求,所以 Kotlin 还提供了更丰富的 APIStateFlow 和 SharedFlow。...总结 初步认识上面的知识点后,我们可以利用 Flow 来改进之前的 Android 代码: UI 相关的状态我们仍然可以使用 LiveData 或者直接使用 StateFlow ,需要注意的是,状态 是一直存在的

    1.2K10

    解决Android开发中的痛点问题用Kotlin Flow

    前言 本文旨在通过实际业务场景阐述如何使用Kotlin Flow解决Android开发中的痛点问题,进而研究如何优雅地使用Flow以及纠正部分典型的使用误区。...有关Flow的介绍及其操作符用法可以参考:异步流 - Kotlin 语言中文站,本文不做赘述。...基于LiveData+ViewModel的MVVM架构在某些场景下(以横竖屏为典型)存在局限性,本文会顺势介绍适合Android开发的基于Flow/Channel的MVI架构。...Kotlin Flow是基于kotlin协程的一套异步数据流框架,可以用于异步返回多个值。...kotlin 1.4.0正式版发布时推出了StateFlow和SharedFlow,两者拥有Channel的很多特性,可以看作是将Flow推向台前,将Channel雪藏幕后的一手重要操作。

    4K20

    Kotlin Flow响应式编程,StateFlow和SharedFlow

    大家好,今天是Kotlin Flow响应式编程三部曲的最后一篇。 其实回想一下我写这个Kotlin Flow三部曲的初衷,主要还是因为我自己想学这方面的知识。...而Kotlin Flow在可预见的时间里,我也上不太可能能在工作当中用得到,所以这个系列也就基本是属于我个人的学习笔记了。...内容和前面的两篇文章有一定的承接关系,所以如果你还没有看过前面两篇文章的话,建议先去参考 Kotlin Flow响应式编程,基础知识入门 和 Kotlin Flow响应式编程,操作符函数进阶 。...Flow的生命周期管理 首先,我们接着在 Kotlin Flow响应式编程,基础知识入门 这篇文章中编写的计时器例子来继续学习。...好了,到这里,Kotlin Flow三部曲全剧终。 虽不敢说通过这三篇文章你就能成为Flow大神了,但是相信这些知识已经足够你解决工作中遇到了绝大多数问题了。

    1.2K10

    实战 | 使用 Kotlin Flow 构建数据流 管道

    Flow 是一种基于流的编程模型,本文我们将向大家介绍响应式编程以及其在 Android 开发中的实践,您将了解到如何将生命周期、旋转及切换到后台等状态绑定到 Flow 中,并且测试它们是否能按照预期执行...△ 单向数据绑定 使用 Flow 可以想象对于这些组合和转换来说,我们需要一个成熟的工具来完成这些操作。在本文中我们将使用 Kotlin Flow 来实现。...delay(refreshIntervalMs) // ⏰ 挂起一段时间 } } } 转换 Flow 在 Android 中,生产者和消费者之间的层可以使用中间运算符修改数据流来适应下一层的要求...在 Android 视图上收集数据流 在 Android 的视图中收集数据流要注意两点,第一是在后台运行时不应浪费资源,第二是配置变更。...val first = repository.messages.take(5).toList() } 回顾 感谢阅读本文,希望您通过本文内容已经了解到为什么响应式架构值得投资,以及如何使用 Kotlin

    2K10

    Kotlin Flow响应式编程,基础知识入门

    Kotlin在推出多年之后已经变得非常普及了。相信现在至少有80%的Android项目已经在使用Kotlin开发,或者有部分功能使用Kotlin开发。...我之所以会拒绝,是因为Kotlin对于Android开发者来说已经非常重要了。...如果你真的希望成为一名优秀的Android开发者(这个标准在几年后会降低为合格的Android开发者),那么Kotlin就必学不可。...而现在随着Kotlin的普及率越来越高,我也终于打算去写一些基于Kotlin语言的进阶技术内容了。目前的计划是把Flow和Compose的相关内容都写一写,先从Flow开始写起。...于是,Kotlin团队又开发出了一套专门用于在Kotlin上使用的响应式编程框架,也就是我们这个系列的主角了:Flow。

    90020
    领券