学习地址:

github wiki 学习地址

ReactiveX 操作符学习地址

RxJava是ReactiveX(反应性扩展)的Java VM实现:一个用于通过使用可观察的序列组成异步和基于事件的程序的库。

RxJava 是基于观察者模式  里面有

Observable(被观察者)--->用来产生事件的

Observer(观察者)---> 接受事件并作出响应

Subscribe(订阅) --->连接 被观察者和观察者

现在呢Rxjava 到3.0 了, 使用首先 引入库

  implementation "io.reactivex.rxjava3:rxjava:3.0.0-RC5"implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'

1  引入库之后创建被观察者 ------->产生事件

 // 1. 创建被观察者 Observable 对象Observable<String> observable =Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(ObservableEmitter<String> emitter) {emitter.onNext("哈喽! Rxjava");emitter.onNext("嗨! Rxjava");emitter.onNext("喂! Rxjava");emitter.onComplete();}});

2 创建观察者 --------> 接受事件并作出响应

  //创建观察者 (Observer )并 定义响应事件的行为Observer<String> observer = new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {Log.d("-----rxjava", "开始采用subscribe连接");}@Overridepublic void onNext(String value) {Log.d("-----rxjava", "对Next事件作出响应:" + value);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "对Error事件作出响应" + e);}@Overridepublic void onComplete() {Log.d("-----rxjava", "对onComplete事件作出响应:RxJava认识完成");}};

3 连接 被观察者和观察者

 //通过订阅(Subscribe)连接观察者和被观察者observable.subscribe(observer);

整体的实现为-------------以一个button 点击事件为例

  findViewById(R.id.rx_basic).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// 1. 创建被观察者 Observable 对象Observable<String> observable =Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(ObservableEmitter<String> emitter) {emitter.onNext("哈喽! Rxjava");emitter.onNext("嗨! Rxjava");emitter.onNext("喂! Rxjava");emitter.onComplete();}});//创建观察者 (Observer )并 定义响应事件的行为Observer<String> observer = new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {Log.d("-----rxjava", "开始采用subscribe连接");}@Overridepublic void onNext(String value) {Log.d("-----rxjava", "对Next事件作出响应:" + value);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "对Error事件作出响应" + e);}@Overridepublic void onComplete() {Log.d("-----rxjava", "对onComplete事件作出响应:RxJava认识完成");}};//通过订阅(Subscribe)连接观察者和被观察者observable.subscribe(observer);}});

打印结果

上将就是最基础的Rxjava 创建

我们常说RxJava 是基于事件流的链式调用 下面写一下链接的 ,上面的案例是为了更好的理解rxjava

  //基于事件流的链式调用findViewById(R.id.rx_link_basic).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//创建被观察者 & 生产事件//create()作用是创建被观察者对象,是最基本的操作符,只有创建Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(ObservableEmitter<String> emitter) {emitter.onNext("哈喽! Rxjava");emitter.onNext("嗨! Rxjava");emitter.onNext("喂! Rxjava");emitter.onComplete();}//subscribe订阅者连接观察者和被观察者//Observer 创建观察者 & 定义响应事件的行为}).subscribe(new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {Log.d("-----rxjava", "开始采用subscribe连接");}@Overridepublic void onNext(String s) {Log.d("-----rxjava", "对Next事件作出响应:" + s);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "对Error事件作出响应" + e);}@Overridepublic void onComplete(){Log.d("-----rxjava", "对onComplete事件作出响应:RxJava认识完成");}});}});

打印结果

以上就是Rxjava的认识, 可能你平时会看到 时候没有使用create() 被观察者也创建了

这里就要说一下操作符

create() 这个是操作符最基本的操作符,只有创建被观察者功能

其他的操作符,不仅有其他的功能 还有创建的功能 ,比如just()作用不仅能创建还能发射对象

下面在看一个例子

  //just()作用不仅能创建还能发射对象等会通过案例对比下//just 的特点:1 创建被观察者对象 2 发送事件Observable.just("哈喽 Rxjava","嗨 Rxjava","喂! Rxjava").subscribe(new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {Log.d("-----rxjava", "开始采用subscribe连接");}@Overridepublic void onNext(String s) {Log.d("-----rxjava", "对Next事件作出响应:" + s);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "对Error事件作出响应" + e);}@Overridepublic void onComplete() {Log.d("-----rxjava", "对onComplete事件作出响应:RxJava认识完成");}});

有时候可能只要结果的时候就可以使用如下,直接返回结果

 Observable.just("哈喽 Rxjava","嗨 Rxjava","喂! Rxjava").subscribe(new Consumer<String>() {@Overridepublic void accept(String s) {Log.d("-----rxjava", s);}});

下一边说一下RxJava 取消订阅.

RxJava 基础的使用相关推荐

  1. RxJava基础知识

    RxJava基础知识 一.引入依赖 implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'implementation 'io.reactivex. ...

  2. RxJava 基础扫盲

    引言:前几天浏览了一下稀土 App,发现有个挺不错的新闻 App 实战实例.正好最近想学习一下完整项目的源码(特别是后台代码,就是各种框架等等).然后想起以前很多大牛都谈起过 RxJava.Retro ...

  3. 初探RxJava(基础篇)

    RxJava Observable (被观察者,事件源) Subscribers(观察者) 1.创建一个Observable对象很简单,直接调用Observable.create即可 Observab ...

  4. Android响应式编程(一)RxJava前篇[入门基础]

    1.RxJava概述 ReactiveX与RxJava 在讲到RxJava之前我们首先要了解什么是ReactiveX,因为RxJava是ReactiveX的一种java实现. ReactiveX是Re ...

  5. 响应式编程android,Android响应式编程(一)RxJava[入门基础]

    1.RxJava概述 ReactiveX与RxJava 在讲到RxJava之前我们首先要了解什么是ReactiveX,因为RxJava是ReactiveX的一种java实现. ReactiveX是Re ...

  6. [译] RxJava JDBC 简介

    www.baeldung.com/rxjava-jdbc 作者:baeldung 译者:oopsguy.com 1.概述 简单地说,rxjava-jdbc 是一个用于与关系数据库交互的 API,其允许 ...

  7. RxJava+Retrofit+MVP+Dagger2

    传说中的谷歌四件套,按顺序来哈~ 2017.2.20更新:对于用了一段时间的谷歌四件套的开发者们来说,基础应该都已经掌握的差不多了,但是四件套确实很博大精深,要想完全掌握,一是要学习使用技巧,二是要在 ...

  8. android retrofit2.0 rxjava2,Android - 网络请求之 Retrofit2 + RxJava

    老婆保佑,代码无BUG 目录 引用 与其他开源请求库对比 Retrofit注解 使用 GET请求 POST请求 Retrofit2 + RxJava 基础使用 优化 封装Retrofit2 + RxJ ...

  9. retrofit与rxjava使用

    retrofit和rxjava(加深) http://www.jianshu.com/p/64af68c5638c Android Retrofit + RxJava使用详解(基础) http://w ...

最新文章

  1. 常用数据挖掘算法简介
  2. 使用 OAS(OpenAPI标准)来描述 Web API
  3. jni c 传递对象到java_JNI将二进制数据从C传递到Java
  4. 面试:一文搞懂堆和栈的区别
  5. 【软考】面向对象程序设计复习指南
  6. 令人笑喷的56个代码注释,最后几个老衲实在憋不住了。。。
  7. 让你做个《五子棋》怎么存储棋盘上的棋子信息?
  8. 联想e550笔记本怎么样_摄像头是亮点 — Lenovo 联想 ThinkPad E550C 笔记本 简单评测...
  9. vue 表格固定首行首列(纯css)
  10. .obj文件格式与.mtl文件格式
  11. emeditor的快捷键
  12. 【Python案例】OCR提取图片中的文字
  13. 面试必看:java面试考点精讲视频教程
  14. python的实例和类.
  15. 6个理由告诉你为什么要用NAS
  16. TS文件下载器(按照M3U8列表 批量下载)
  17. 合理使用DTO(Data Transfer Object)
  18. 在线客服系统如何应对移动化市场需求
  19. mysql从一台电脑迁移_mysql数据库迁移到另一台电脑上
  20. js高级程序设计第四部分

热门文章

  1. IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...
  2. 2022-2028年中国密胺塑料制品行业市场研究及前瞻分析报告
  3. 一道有意思的阶乘计算题
  4. 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)
  5. 字符串中匹配\n,\t 判读是否为nonetype类型
  6. 理解和实现分布式TensorFlow集群完整教程
  7. npm install遇到ENOENT: no such file or directory, rename错误
  8. LeetCode简单题之Fizz Buzz
  9. OpenCL™(开放计算语言)概述
  10. CodeGen融合核心关系循环扩展