RxJava响应式编程详解

本文详细介绍了RxJava的核心概念、优势以及基础操作,包括观察者模式、线程控制Scheduler的使用。深入探讨了RxJava的响应式-观察者模式的进阶,并分析了其原理。同时,文章还涵盖了Retrofit在网络请求中的应用,展示了如何将RxJava与Retrofit结合使用,提供了一种类型安全的网络请求解决方案。
摘要由CSDN通过智能技术生成

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基本代码:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值