首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android RxJava 使用

前言 Android原生多线程和异步处理简直糟透了,反复嵌套让代码看起来十分不明了,多线程上也没有iOSdispatch好用,但是用了Rxjava后就会有所改善,虽然代码量看起来会多一点,但是逻辑就清晰多了...) 背压(backpressure):只有上下游运行在各自线程,且上游发射数据速度大于下游接收处理数据速度时,才会产生背压问题。...看上去是发布者订阅了订阅者,之所以这样是因为链式代码优雅 线程(Scheduler) 常用方式是分线程处理数据,主线程中使用数据生成页面 Observable .create(new ObservableOnSubscribe...concatMap发射数据集是有序,flatMap发射数据集是无序 filter 过滤 假如我们要大于5数 Integer[] nums = {3, 4, 5, 6, 7}; Observable...而不是错误前一个事件 ​ Android应用 添加依赖 implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation

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

AndroidRxJava使用(二)Action

回顾 在上一节Android RxJava使用(一)基本用法,介绍了RxJava基本用法。下面来回顾下实现一次RxJava基本使用。...不急,RxJava还有其他功能呢。 小结 Action使用为我们减少了不必要代码,使得写出代码看上去更加得简洁。...不过就目前来看RxJava还是没有什么优势值得我们去使用,下一篇我还会介绍更多RxJava用法。慢慢得,你就会发现使用RxJava写出来代码看上去真的很漂亮。...更多: 更多: Android RxJava使用(三)转换(map、flatMap) Android RxJava使用(四)线程控制 —— Scheduler 以上有错误之处感谢指出 参考...:给 Android 开发者 RxJava 详解 (本文部分内容引用自该博客)

87360

AndroidRxJava使用(一)基本用法

前言 最近经常看到RxJava这个字眼,也看到很多人在博客推荐使用RxJava。...切莫着急,随着慢慢深入就能体会到RxJava带来方便了) 参考:给 Android 开发者 RxJava 详解 (本文部分内容引用自该博客) 介绍 在GitHub主页上介绍: a library...; } }; 不仅基本使用方式一样,实质上,在 RxJava subscribe 过程,Observer也总是会先被转换成一个Subscriber再使用。如图: ?...后面的几篇我会介绍RxJava其他功能,还有一些复杂嵌套关系处理,到时候知道RxJava强大之处了) 更多: Android RxJava使用(二)Action Android RxJava...使用(三)转换(map、flatMap) Android RxJava使用(四)线程控制 —— Scheduler 以上有错误之处感谢指出

1.1K70

Androidroom数据使用小结(kotlin

总而言之, Room功能强大,速度和稳定性不弱,还简单易用,算得上是一个优秀数据库。 这里总结下使用room数据过程和遇到问题,以及如何稳定进行数据迁移和升级。...首先准备,引入依赖,在app文件夹下build.gradle增加: //ROOM数据库 implementation "android.arch.persistence.room:runtime...:1.1.1" kapt "android.arch.persistence.room:compiler:1.1.1" 需要注意是,使用kotlin,annotationProcessor..." 还需引入一个插件:apply plugin: 'kotlin-kapt' 代码结构目录是不是很清晰,在room下dao单独建dao包,操作接口在这里实现,所有的表定义单独在entity包。...使用主键 : 一个Entry至少需要一个主键,使用@PrimaryKey来注释. 自增类型主键,则可以设置 @PrimaryKey autoGenerate 属性。

3.1K50

Android RxJava实际应用案例讲解:使用RxJava最佳开发场景

前言 Rxjava由于其基于事件流链式调用、逻辑简洁 & 使用简单特点,深受各大 Android开发者欢迎。...如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂Rxjava 入门教程 今天,我将为大家带来 Rxjava基本使用 & 实际应用案例教学,即常见开发应用场景实现 ,...基本使用 Rxjava使用方式有两种: 方式1:分步骤实现 方式2:基于事件流链式调用 具体使用 请看文章Android RxJava:面向初学者RxJava使用指南 3....变换操作符FlatMap()实现嵌套网络请求 具体实现 Android RxJava 实际应用讲解:网络请求嵌套回调 3.5 从磁盘 / 内存缓存 获取缓存数据 需求场景 功能说明...对于从磁盘 / 内存缓存 获取缓存数据 功能逻辑如下: 具体实现 Android RxJava 实际应用讲解:从磁盘 / 内存缓存 获取缓存数据 3.6 合并数据源 需求场景 功能说明

1.3K50

Android RxJava应用:从磁盘内存缓存获取缓存数据

前言 Rxjava,由于其基于事件流链式调用、逻辑简洁 & 使用简单特点,深受各大 Android开发者欢迎。...今天,我将为大家带来 Rxjava常见开发应用场景:从磁盘、内存缓存获取缓存数据 ,希望大家会喜欢。...Carson带你学RxJava系列文章,包括 原理、操作符、应用场景、背压等等,请看文章:Android:这是一份全面 & 详细RxJava学习指南 目录 1....需求场景 注:关于 Rxjava创建操作符firstElement()和 concat()使用请看文章 Android RxJava:最基础操作符详解 - 创建操作符 Android RxJava...总结 本文主要讲解了 Rxjava实际开发需求场景:从磁盘 / 内存缓存 获取缓存数据

2.2K40

AndroidRxJava使用(四)线程控制 —— Scheduler

(对RxJava还不了解可以出门左拐) 之前代码,事件发起和消费都是在同一个线程执行,也就是说之前我们使用RxJava是同步~~~ 观察者模式本身目的不就是后台处理,将处理结果回调给前台...所以,这篇为大家介绍RxJava重要概念——Scheduler 参考:给 Android 开发者 RxJava 详解 (本文部分内容引用自该博客) 介绍 RxJava在不指定线程情况下,...Schedulers.io(): I/O 操作(读写文件、读写数据库、网络信息交互等)所使用 Scheduler。...observeOn()可以多次使用,可以随意变换线程 小结 学会线程控制后才算是真正学会了使用RxJavaRxJava使用十分灵活,想要对其熟悉使用只有一个办法,那就是多用啦,熟能生巧。...以上有错误之处感谢指出 参考:给 Android 开发者 RxJava 详解 (本文部分内容引用自该博客)

646120

Android 开发 Kotlin Coroutines 如何优雅地处理异常

我们以前使用 launch、async 函数都是 CoroutineScope 扩展函数。 GlobalScope 没有绑定任何 Job 对象,它用于构建最顶层协程。...这些协程生命周期会跟随着 Application。 在 GlobalScope 创建 Coroutines,是有可能会导致应用崩溃。...在 View 创建 autoDisposeScope 在 Android View 创建 Coroutines,需要跟 View 生命周期绑定。...// 在 Android View 创建 autoDisposeScope,支持主线程运行、异常处理、Job 能够在 View 生命周期内自动 Disposable val View.autoDisposeScope...总结 https://github.com/fengzhizi715/Lifecycle-Coroutines-Extension,本文是对该库一次升级,也是对近期使用 Kotlin Coroutines

1.5K30

即学即用Kotlin - 协程

有可能有的同学问了,既然它基于线程池,那我直接使用线程池或者使用 Android 其他异步任务解决方式,比如 Handler、RxJava等,不更好吗?...引入 Android Jetpack 协程扩展库官方文档:点我打开 二、流 长期以来,在 Android 响应式编程首选方案是 RxJava,我们今天就来了解一下 Kotlin响应式编程 Flow...曾经我在《即学即用Android Jetpack - ViewModel & LiveData》一文说过,LiveData 使用类似于 RxJava,现在我收回这句话,事实上,LiveData 更加简单和纯粹...改变消费数据线程 我在上面的表格并没有写到在 Flow 如何改变消费线程,并不意味着 Flow 不可以指定消费线程?...RxJava flatmap,将你发射出去数据源转变为另一种数据源。

1.5K20
领券