RxJava学习笔记1--RxJava原理和简单实现
2016-07-07 19:59
351 查看
1.android BUTTON 示例
button是被观察者(observable)
onclicklistener是观察者(observer)
button.setonclicklistener:订阅button
onclick:事件
2.抽象
observable:被观察者
observer:观察者
subscribe:observer订阅observable
onevent:事件
被观察者被观察者订阅后,在需要某些操作的时候通知观察者。
3.细化
普遍事件:onnext
特殊事件:oncomplete->事件队列完成后执行
onerror->事件队列异常时调用,队列终止
明显,oncomplete和onerror互斥
4.实现
注册观察者:
Observer<String> observer = new Observer<String>() {
@Override
public void onNext(String s) {
Log.d(tag, "Item: " + s);
}
@Override
public void onCompleted() {
Log.d(tag, "Completed!");
}
@Override
public void onError(Throwable e) {
Log.d(tag, "Error!");
}
};
定义时间触发时将有什么样的行为:onnext
注册被观察者:
Observable observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("Hello");
subscriber.onNext("Hi");
subscriber.onNext("Aloha");
subscriber.onCompleted();
}
});
OnSubscribe :相当于事件队列,观察者会调用3次onnext方法和一次oncompleted方法
其他定义事件队列的方法->Observable observable = Observable.just("Hello", "Hi", "Aloha");
->String[] words = {"Hello", "Hi", "Aloha"};
Observable observable = Observable.from(words);//将数组拆分成单个对象,依次分发事件
订阅关联:
observable.subscribe(observer); //observable.subscribe(subscriber);
原理:
button是被观察者(observable)
onclicklistener是观察者(observer)
button.setonclicklistener:订阅button
onclick:事件
2.抽象
observable:被观察者
observer:观察者
subscribe:observer订阅observable
onevent:事件
被观察者被观察者订阅后,在需要某些操作的时候通知观察者。
3.细化
普遍事件:onnext
特殊事件:oncomplete->事件队列完成后执行
onerror->事件队列异常时调用,队列终止
明显,oncomplete和onerror互斥
4.实现
注册观察者:
Observer<String> observer = new Observer<String>() {
@Override
public void onNext(String s) {
Log.d(tag, "Item: " + s);
}
@Override
public void onCompleted() {
Log.d(tag, "Completed!");
}
@Override
public void onError(Throwable e) {
Log.d(tag, "Error!");
}
};
定义时间触发时将有什么样的行为:onnext
注册被观察者:
Observable observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("Hello");
subscriber.onNext("Hi");
subscriber.onNext("Aloha");
subscriber.onCompleted();
}
});
OnSubscribe :相当于事件队列,观察者会调用3次onnext方法和一次oncompleted方法
其他定义事件队列的方法->Observable observable = Observable.just("Hello", "Hi", "Aloha");
->String[] words = {"Hello", "Hi", "Aloha"};
Observable observable = Observable.from(words);//将数组拆分成单个对象,依次分发事件
订阅关联:
observable.subscribe(observer); //observable.subscribe(subscriber);
原理:
相关文章推荐
- Android中通过RxJava进行响应式程序设计的入门指南
- Java扩展库RxJava的基本结构与适用场景小结
- Java的RxJava库操作符的用法及实例讲解
- 浅析RxJava处理复杂表单验证问题的方法
- RxJava入门指南及其在Android开发中的使用示例
- 跟我一起看Retrofit 2.0的源码
- RxJava之subscribeOn解惑
- Rxjava
- RxJava(ReactiveX,Observable)的一些大白话
- HTTP Client新宠Retrofit和ReactiveX结婚之后,新的挑战来了
- http://gank.io/post/560e15be2dca930e00da1083
- RxJava 和 RxAndroid 四(RxBinding的使用)
- RxAndroid+Retrofit+Rxbinding+RxBus先用再懂(1)
- Rxjava的helloWorld
- PopupWindow返回参数至Activity两种方式:接口和Rxjava
- Rxjava要素(一)
- RXJava异步代码
- 文章标题
- hot and cold observable
- Retrofit+Rxjava