RxJava的概念
1. RxJava的介绍:
一个在Java VM上使用可观测的序列来组成异步的、基于事件的程序的库
Rxlava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based program: 'by using observable sequences.
2. RxJava的优势:
简洁-随着程序逻辑变得越来越复杂,它依然能够保持简洁 高效-快速开发,代码一条从上到下的链式调用
1. RxJava基础:
观察者模式
响应式编程基础
RxJava的API及源码分析
2. RxJava系列框架:
RxAndroid, RxBinding, Retrofit框架-RxJava, RxLifecycle, RxPermissions
异步操作: Rxjava系列
网络请求: Retrofit
数据绑定: DataBinding
图片浏览: PhotoView
图片加载: Glide, Picasso
观察者模式
响应式-观察者模式的进阶
RxJava详解
更加简洁的展示方式-Lambda
1、RxJava中使用lambdaJava8 引入了Lambda表达式,使代码更简洁。
Java 6+ & Android 2.3+Java 8 lambda support
Android中,通过导入retrolambda(gradle插件),来使用lambda.
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.3.1'
}
RxJava的操作符 :https://blog.csdn.net/qq_42179105/article/details/84800814
线程控制- Scheduler
1. Scheduler的API :
用于控制操作符和被观察者事件,所执行的线程
不同的调度器,对应不同的线程
调度器的分类:
Schedulers.immediate():默认线程
Schedulers.newThread():新建线程
Schedulers.io():适用于I/0操作(线程池)
Schedulers.computation():适用于计算工作(线程池) Schedulers.trampoline():当前线程,队列执行
如何进行线程调度?
使用ObserveOn()和subscribeOn()操作符
subscribeOn():指定subscribe()所发生的线程,即Observable.OnSubscribe被激活时所处的线程。或者叫做事件产生的线程。
observeOn():指定Subscriber所运行在的线程。或者叫做事件消费的线程。
1.Scheduler 的原理
RxJava 遵循的是线程不变的原则,即:在哪个线程调用 subscribe(),就在哪个线程生产事件;在哪个线程生产事件,就在哪个线程消费事件。如果需要切换线程,就需要用到 Scheduler (调度器)。
- subscribeOn() 原理图:
subscribeOn()通过操作特定的Scheduler,通知Observable在指定线程执行。
- observeOn() 原理图:
ObserveOn()通过操作特定的Scheduler,让Observable指定Observers的执行线程;
RxJava原理分析
1、基本结构
创建Observable
创建Subscriber
订阅subscribe()
基本流程分析
1.基本结构
我们先来看看,RxJava基本代码: