RxJava 使用及思想1

RxJava 使用及思想1

https://blog.csdn.net/qq_44076155/article/details/110775440

RxJava模式与原理2

https://blog.csdn.net/qq_44076155/article/details/110775641

RxJava线程切换与自定义操作符3

https://blog.csdn.net/qq_44076155/article/details/110775977

 

Rx 思维:响应式编程

生活中的例子:

起点(分发事件(PATH):我饿了)----------下楼-------去餐厅--------点餐----------> 终点(吃饭 消费事件)

程序中的例子:

起点(分发事件:点击登录)----------登录API-------请求服务器--------获取响应码----------> 终点(更新UI登录成功 消费事件)

 

Rx思维,从一个点(生产事件,需要处理的事件,对象)开始,中间可以使用各种操作符不断对这个点进行处理操作,进行完所有操作后到达终点进行回收(消费事件),中间没有阻断

一环扣一环,每次都是获得到上一步的数据后再进行操作

如图则是从一个被观察者分发一个PATH事件开始,中间有三部获取到图片,给图片加水印,打印日志,最后由订阅的观察者来消费此事件

生产过程是一条连续不断的链,在Rxjava表现为一系列的链式调用,中间各个模块形成一个一个卡片,又称为卡片式编程

 

 

 

Rxjava执行流程不像传统框架的线性执行,它呈一个U型执行

上图的应用场景实际的执行流程为

1.Observer观察者进行订阅,执行onSubscribe表示已经订阅成功,执行第一步

2.Observable被观察者被订阅后开始分发事件

 

3.按顺序分别对该事件进行不同的处理操作

 

4.第四步OnNext观察者拿到事件

5.OnComplet所有都执行完成

 

 

Rxjava ,Retrofit,okhttp三者的关系

Retrofit是一个管理者,用来统一协调,包括gson,rxjava,okhttp,

Okhttp才是真正来进行网络请求的框架

Rxjava进行异步网络请求和处理数据

 

创建了一个retrofit对象,添加gson,rxjava工具

 

 

View防抖  RxBinding

可以用于view控件防抖,设置多少秒内只会响应一次

 

下图为一个先获取到总数据API然后根据总数据来获取Item数据的一个网络嵌套场景

 

 

操作符 flatMap

接受一个事件,操作完后自己可以分发出多个事件,而对于事件流向观察者后,会终止此次事件,因此能多进行操作

 

 

 

 

clicks()进行事件监听,不用再去setOnclickListener,进行了防抖操作

每一个步过程的数据都是由上一步的返回数据来决定,再次引证了响应式的这种思维

Observable.fromIterable类似于迭代器模式,将总数据Bean变成多个ItemBean分发出去,从而避免了网络嵌套

 

切换线程的方式

 给上面切换线程

 给下面切换线程

 

 

 

doOnnext

简单理解就是消费事件但是数据还会继续流下去并且不会改变数据源类型,而终点的观察者会终结数据流

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值