RxJava & RxAndroid简单使用(2)
来源:互联网 发布:怎样开通手机淘宝 编辑:程序博客网 时间:2024/06/05 11:06
扔物线 基于rxjava1.0写的一篇《给 Android 开发者的 RxJava 详解》很值得我们细细品读,我是读了几遍,越度越有味道,RxJava的核心异步,即线程的调度,要想学好Rx的异步功能。这篇文章我们先来学习学习设计模式中的观察者模式Observe
RxJava 的观察者模式,四个基本概念:Observer (观察者)、Observable (被观察者)、 subscribe (订阅)、事件。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。
Observer 观察者
//观察者 Observer<Integer> observer = new Observer<Integer>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Integer value) { } @Override public void onError(Throwable e) { } @Override public void onComplete() { } };
//RxJava内置观察者的接口 用法跟Observe一样 Subscriber<String> subscriber = new Subscriber<String>() { @Override public void onSubscribe(Subscription s) { } @Override public void onNext(String s) { } @Override public void onError(Throwable t) { } @Override public void onComplete() { } };
Observable 被观察者
Rx1.0版创建被观察者方法
Observable observable = Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("next1"); subscriber.onNext("next2"); subscriber.onCompleted(); }});
Rx2.0的版创建被观察者的方法
//创建被观察者 Observable.create Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> e) throws Exception { } }); //创建被观察者 直接new Observable<String> observable2 = new Observable<String>() { @Override protected void subscribeActual(Observer<? super String> observer) { observer.onNext("next1"); observer.onNext("next2"); observer.onComplete(); } };
Subscribe 订阅
订阅关系当然是观察者订阅被观察者啦
这样写
//观察者 Observer<String> observer = new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }; //观察者订阅被观察者 Observable.just("1","2","3").subscribe(observer);
或者这样写
//观察者订阅被观察者 Observable.just("1", "2", "3").subscribe(new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });
0 0
- RxJava & RxAndroid简单使用(2)
- RxJava & RxAndroid简单使用(1)
- RxJava & RxAndroid简单使用(3)
- RxJava & RxAndroid简单使用(4)
- RxAndroid和RxJava的简单使用
- Rxjava RxAndroid 使用
- RxJava漫谈-RxAndroid使用
- RXjava/RxAndroid/lambdas 简单demo
- RxJava RxAndroid基本使用介绍
- RxJava和RxAndroid使用详解
- RxJava(RxAndroid)基本使用入门
- RxJava RxAndroid基本使用介绍
- RxJava(RxAndroid)基本使用入门
- RxJava(RxAndroid)基本使用入门
- RxJava(RxAndroid)基本使用入门
- RxJava 和 RxAndroid 四(RxBinding的使用)
- RxJava 和 RxAndroid 四(RxBinding的使用)
- RxJava 和 RxAndroid 二(操作符的使用)
- 3.结构光:工程建立
- JSON三种创建方式
- new和malloc的区别
- spark读取多个文件夹(嵌套)下的多个文件
- Activiti中流程对象之间的关系
- RxJava & RxAndroid简单使用(2)
- Linux进程间通信——使用命名管道
- ELK学习资料
- Activiti获取某个流程实例的FormKey
- Java学习笔记_001_数据类型与运算符
- 同步图计算:GraphLite的安装和使用
- Activiti获取某个流程实例已经审批的节点记录
- Lua学习:表和数组
- SHH+maven+SVN+Oracle+tomcat8.0之struts