RxJava基本实现
在使用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基本实现相关推荐
- RxJava 实现模糊搜索
实现的效果图如下 下面说下实现的具体方法 1 引入库 implementation "io.reactivex.rxjava3:rxjava:3.0.0-RC5"implement ...
- RxJava firstElement 与 lastElement 以及 elementAt
1 firstElement 文档如下 2 lastElement 文档如下 3 elementAt 文档如下 下面写一个下代码 firstElement Observable.just(1,2,3, ...
- RxJava 过滤操作符 throttleFirst 与 throttleLast 以及 sample
看文档发现 throttleFirst 与 throttleLast 以及 Sample 都跳到同一个界面Sample throttleFirst :在某段时间内,只发送该段时间内第1次事件(假如一个 ...
- RxJava 过滤操作符 distinct 和 distinctUntilChanged
distinct 看下文档 distinct : 过滤掉重复的元素 distinctUntilChanged: 过滤掉连续重复的元素,不连续重复的是不过滤 看下代码 1 distinct Obse ...
- RxJava 过滤操作符 take 与 takeLast
take 看下官方文档 take : 指定 观察者正序接受指定的items数量 takeLast 指定观察者正序接受最后指定的items的数量 看下demo take的代码 Observable.ju ...
- RxJava 过滤操作符skip 与 skipLast
skip 看下文档 skip 是正序跳过指定的items skipLast 是正序跳过指定最后几个items 下面看下代码 Observable.just(1,2,3,4,5,6).skip(1)// ...
- RxJava 变换操作符Map
看下文档如下 通过对每个项目应用函数来转换Observable发出的项目 个人理解为转换类型 下面写一个把int 类型转换为String 类型的demo Observable.create(new O ...
- RxJava 操作符 do
看下文档给的图片 注册一项操作以应对各种可观察的生命周期事件 do的操作符有很多具体如下 下面看下器使用 Observable.create(new ObservableOnSubscribe< ...
- RxJava debounce()和throttleWithTimeout()
官方地址:http://reactivex.io/documentation/operators/debounce.html debounce :防抖动 throttleWithTimeout:节流超 ...
- RxJava 解除订阅---------Disposable.dispose()方法
有时候我们需要解绑订阅,或者取消订阅, 这个时候就使用到了 Disposable.dispose()方法下面以一个案例说下使用方法 //Disposable.dispose()切断观察者 与 被观察者 ...
最新文章
- Mysql事务处理问题
- MATLAB 转PDF图片过大导致两边缺失
- mysql group replication 安装配置详解
- FatFs源码剖析(1)
- OOB与COM交互读写本地文件
- iphone版 天行skyline_SkyLine
- Ubuntu下 VirtualBox的卸载和升级 (转载)
- 80%的程序员不了解的微服务内幕
- 190517每日一句
- Linux 环境下 vi/vim 编辑器常用命令
- soapui 测试webservice
- esp8266教程:编译sdk常用命令
- 2年工作经验杂谈(java开发)
- Android 、AndroidQ 、小米、 oppo等【后台启动界面】问题 解决方案
- 基层教学组织评估系统6_项目完结心得收获、思考人生篇
- npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.
- 217小白最新详细linux环境下安装博客WordPress教程
- RocketMQ 延迟消息(定时消息)4.9.3 版本优化 异步投递支持
- 如何删除tmp计算机桌面,win10系统下tmp临时文件删除不了如何解决
- python画人脸代码_10行代码实现python人脸识别
热门文章
- 六年级下册第二单元计算机,六年级下册语文第二单元作文(精选10篇)
- Ubuntu18.04安装WPS字体缺失的解决方案
- composer 安装laravel 5.5 苹果终端
- C++ 按位与、或、异或等运算方法
- Linux Shell脚本编程基础
- 我的家乡潍坊HTML静态网页 学生个人网页设计作品 学生家乡网页模板 简单个人主页成品
- 我们都是代码接盘侠,请做一位好前任!
- Panabit专业流量监控开源软件
- 3.5折怎么用计算机算,论几十块钱的小主机能干什么?手把手教你改造神器!(32位黑裙晖安...
- C#反射的实现原理及简单应用