在使用RxJava前请先在AndroidStudio中配置gradle:

    //RxJavaimplementation "io.reactivex.rxjava3:rxjava:3.0.0"implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'

其中RxAndroid是RxJava在Android平台的扩展。它包含了一些能够简化Android开发的工具,比如特殊的调度器。

RxJava的基本用法分为3个步骤,如下所示:

1、创建Observer(观察者)

它决定事件触发的时候将有怎样的行为,代码如下所示:

        Observer observer = new Observer<String>() {@Overridepublic void onSubscribe(@NonNull Disposable d) {Log.d(TAG, "onSubscribe: ");}@Overridepublic void onNext(@NonNull String s) {Log.d(TAG, "onNext: ");}@Overridepublic void onError(@NonNull Throwable e) {Log.d(TAG, "onError: ");}@Overridepublic void onComplete() {Log.d(TAG, "onComplete: ");}};
  • onSubscribe:事件队列完结。RxJava不仅把每个事件单独处理,而且还会把他们看做一个队列。当不会再有新的onNext发出时,需要触发onComplete方法作为完成标志。
  • onError:事件队列异常。在事件处理过程中出现异常,onError方法会被触发,同时队列自动终止,不允许再有事件发出。
  • onNext:普通的事件。将要处理的事件添加到事件队列中。
  • onSubscribe:当订阅时会被调用。

2.创建Observable(被观察者)

它决定什么时候触发事件及触发怎样的事件。RxJava使用create方法来创建一个Observable,并为它定义事件触发规则,如下所示:

 Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(@NonNull ObservableEmitter<String> emitter) throws Throwable {emitter.onNext("杨影枫");emitter.onNext("月眉儿");emitter.onComplete();}});

通过调用subscriber的方法,不断地将事件添加到任务队列中,也可以用just方法实现:

        Observable.just("杨影枫","月眉儿").subscribe(observer);

上述代码会依次调用 onNext("杨影枫")、onNext("月眉儿")、onComplete()。

3.Subscribe(订阅)

订阅至于要一行代码就可以了,如下所示:

observable.subscribe(observer)

RxJava基本实现相关推荐

  1. RxJava 实现模糊搜索

    实现的效果图如下 下面说下实现的具体方法 1 引入库 implementation "io.reactivex.rxjava3:rxjava:3.0.0-RC5"implement ...

  2. RxJava firstElement 与 lastElement 以及 elementAt

    1 firstElement 文档如下 2 lastElement 文档如下 3 elementAt 文档如下 下面写一个下代码 firstElement Observable.just(1,2,3, ...

  3. RxJava 过滤操作符 throttleFirst 与 throttleLast 以及 sample

    看文档发现 throttleFirst 与 throttleLast 以及 Sample 都跳到同一个界面Sample throttleFirst :在某段时间内,只发送该段时间内第1次事件(假如一个 ...

  4. RxJava 过滤操作符 distinct 和 distinctUntilChanged

    distinct  看下文档 distinct  : 过滤掉重复的元素 distinctUntilChanged: 过滤掉连续重复的元素,不连续重复的是不过滤 看下代码 1 distinct Obse ...

  5. RxJava 过滤操作符 take 与 takeLast

    take 看下官方文档 take : 指定 观察者正序接受指定的items数量 takeLast 指定观察者正序接受最后指定的items的数量 看下demo take的代码 Observable.ju ...

  6. RxJava 过滤操作符skip 与 skipLast

    skip 看下文档 skip 是正序跳过指定的items skipLast 是正序跳过指定最后几个items 下面看下代码 Observable.just(1,2,3,4,5,6).skip(1)// ...

  7. RxJava 变换操作符Map

    看下文档如下 通过对每个项目应用函数来转换Observable发出的项目 个人理解为转换类型 下面写一个把int 类型转换为String 类型的demo Observable.create(new O ...

  8. RxJava 操作符 do

    看下文档给的图片 注册一项操作以应对各种可观察的生命周期事件 do的操作符有很多具体如下 下面看下器使用 Observable.create(new ObservableOnSubscribe< ...

  9. RxJava debounce()和throttleWithTimeout()

    官方地址:http://reactivex.io/documentation/operators/debounce.html debounce :防抖动 throttleWithTimeout:节流超 ...

  10. RxJava 解除订阅---------Disposable.dispose()方法

    有时候我们需要解绑订阅,或者取消订阅, 这个时候就使用到了 Disposable.dispose()方法下面以一个案例说下使用方法 //Disposable.dispose()切断观察者 与 被观察者 ...

最新文章

  1. Mysql事务处理问题
  2. MATLAB 转PDF图片过大导致两边缺失
  3. mysql group replication 安装配置详解
  4. FatFs源码剖析(1)
  5. OOB与COM交互读写本地文件
  6. iphone版 天行skyline_SkyLine
  7. Ubuntu下 VirtualBox的卸载和升级 (转载)
  8. 80%的程序员不了解的微服务内幕
  9. 190517每日一句
  10. Linux 环境下 vi/vim 编辑器常用命令
  11. soapui 测试webservice
  12. esp8266教程:编译sdk常用命令
  13. 2年工作经验杂谈(java开发)
  14. Android 、AndroidQ 、小米、 oppo等【后台启动界面】问题 解决方案
  15. 基层教学组织评估系统6_项目完结心得收获、思考人生篇
  16. npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.
  17. 217小白最新详细linux环境下安装博客WordPress教程
  18. RocketMQ 延迟消息(定时消息)4.9.3 版本优化 异步投递支持
  19. 如何删除tmp计算机桌面,win10系统下tmp临时文件删除不了如何解决
  20. python画人脸代码_10行代码实现python人脸识别

热门文章

  1. 六年级下册第二单元计算机,六年级下册语文第二单元作文(精选10篇)
  2. Ubuntu18.04安装WPS字体缺失的解决方案
  3. composer 安装laravel 5.5 苹果终端
  4. C++ 按位与、或、异或等运算方法
  5. Linux Shell脚本编程基础
  6. 我的家乡潍坊HTML静态网页 学生个人网页设计作品 学生家乡网页模板 简单个人主页成品
  7. 我们都是代码接盘侠,请做一位好前任!
  8. Panabit专业流量监控开源软件
  9. 3.5折怎么用计算机算,论几十块钱的小主机能干什么?手把手教你改造神器!(32位黑裙晖安...
  10. C#反射的实现原理及简单应用