被观察者通过订阅将事件按顺序依次传递给观察者,
//RxAndroid中包含RxJava的内容,只引入RxAndroid还是会报错dependencies { ...... compile 'io.reactivex.rxjava2:rxjava:2.1.3' compile 'io.reactivex.rxjava2:rxandroid:2.0.1'}
image.png创建Observer(观察者) Observer<Integer> observer = new Observer<Integer>() { // 观察者接收事件前 ,当 Observable 被订阅时,观察者onSubscribe方法会自动被调用 @Override public void onSubscribe(Disposable d) { Log.d(TAG, "开始采用subscribe连接"); } // 当被观察者生产Next事件 @Override public void onNext(Integer value) { Log.d(TAG, "对Next事件作出响应" + value); } // 当被观察者生产Error事件 @Override public void onError(Throwable e) { Log.d(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件 @Override public void onComplete() { Log.d(TAG, "对Complete事件作出响应"); } };
//Subscriber类 = RxJava 内置的一个实现了 Observer 的抽象类,对 Observer 接口进行了扩展 Subscriber<Integer> subscriber = new Subscriber<Integer>() { // 观察者接收事件前 ,当 Observable 被订阅时,观察者onSubscribe方法会自动被调用 @Override public void onSubscribe(Disposable d) { Log.d(TAG, "开始采用subscribe连接"); } // 当被观察者生产Next事件 @Override public void onNext(Integer value) { Log.d(TAG, "对Next事件作出响应" + value); } // 当被观察者生产Error事件 @Override public void onError(Throwable e) { Log.d(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件 @Override public void onComplete() { Log.d(TAG, "对Complete事件作出响应"); } };
Subscriber 抽象类与Observer 接口的区别
二者基本使用方式一致(在RxJava的subscribe过程中,Observer会先被转换成Subscriber再使用)Subscriber抽象类对 Observer 接口进行了扩展,新增了两个方法: Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integer> emitter) throws Exception { // 通过 ObservableEmitter类对象产生事件并通知观察者 // ObservableEmitter:定义需要发送的事件 & 向观察者发送事件 emitter.onNext(1); emitter.onComplete(); } });
RxJava 提供了其他方法用于 创建被观察者对象Observable
// 方法1:just(T...):直接将传入的参数依次发送出来 Observable observable = Observable.just("A", "B", "C"); // 将会依次调用: // onNext("A"); // onNext("B"); // onNext("C"); // onCompleted();// 方法2:fromArray(T[]) / from(Iterable<? extends T>) : 将传入的数组 / Iterable 拆分成具体对象后,依次发送出来 String[] words = {"A", "B", "C"}; Observable observable = Observable.fromArray(words); // 将会依次调用: // onNext("A"); // onNext("B"); // onNext("C"); // onCompleted();
以上两种方法创建出来的观察者都是继承Observable,比如ObservableCreate、ObservableFromArray、ObservableMap...,
public interface ObservableSource<T> { void subscribe(@NonNull Observer<? super T> observer);}--------------------------------------------------------------------------------------------------------public abstract class Observable<T> implements Observ
扫码加微信详细咨询太和智慧养老产品和平台服务!
版权声明:
---------------------------------------------------------------
所有信息来源于互联网,本文的版权归原作者所有,不代表本网观点和立场。
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 81480447@qq.com 举报,一经查实,本站将立刻删除。
扫码加微信详细咨询太和智慧养老产品和平台服务!
养老资讯
- 高考英语答题技巧(高中英
- 教师业务学习心得(领导不
- 小学你的梦想是什么,初中
- 女神节朋友圈文案怎么发?
- 有哪些会让你感到凄凉、悲
- 什么样的人能永远快乐?物
- 六一儿童节趣味活动(马上
- 互联网创新创业点子(工厂
- 公务员考试题库大全(公务
- 你对班主任的工作有哪些认
- 人与自然的关系是怎样的对
- 疫情时期在家待着,每天都
- 为什么成功的人看起来那么
- 做广告灯箱业务员,应该从
- 看完湿得最厉害的文案(迄
- 给高三学生的暖心话(有没
- 后进生转化案例10篇(有
- 什么心态的人会怂恿别人哗
- 信贷客户经理(当一名银行
- 如何评价由蒋欣、李光洁、
- 怎样看待大学每天的跑操?
- 快乐原来如此简单(什么是
- 零分作文被北大录取(如果
- 为什么小孩子要摆满月酒?
- 走进毛泽东观后感(“毛瓷
- 曾经沧海难为水(“曾经沧
- 桃花的花期有多长?春天来
- 教师节祝福图片(教师节,
- 有哪些开头恐怖结尾搞笑的
- 你怎么看乌克兰总统选举遭
- 公司不批离职申请,直接走
- 关于螃蟹的神秘面纱你知道
- 清明祭祖的意义在哪里?清
- 成长是一个怎样的过程?你
- 科普文章范文格式(你觉得
- 我的朋友他的妻子电影(看
- 如何评价《蜘蛛侠:英雄归
- 女娲补天教案(怎样看女娲
- 暑假生活图片(在高二的暑
- 古代有哪些痴情人士?世界
助老机构介绍
姓名:
年龄:
电话: