RxJava在Android中使用笔记
使用RxJava可以方便实现观察者模式,数据转换和线程之间通信
https://github.com/ReactiveX/RxJava
在Android中使用RxAndroid增加安卓主线程支持:
https://github.com/ReactiveX/RxAndroid
实际开发中在gradle中注册对应的依赖即可:
compile 'io.reactivex:rxandroid:1.1.0'
观察者模式一般要有两个对象:
1.被观察者:Obserable
2.观察者:Observer
观察者和被观察者绑定后,被观察者在某种事件发生时会向所有观察它的观察者发送事件,即调用观察者的回调函数。
使用java.util里的观察者应该是这样的:
import android.util.Log; import java.util.Observable; import java.util.Observer; public class ObserverTest { void test0() { //创建被观察者 DemoObserable obserable = new DemoObserable(); //创建一个观察者 Observer observer1 = new Observer() { //观察者接收到事件时的操作 @Override public void update(Observable observable, Object data) { Log.e("TAG", "ToObserver1: " + data); } }; //添加绑定 obserable.addObserver(observer1); //被观察者发送事件 obserable.subscribe("Hello World!!"); //被观察者将观察者移除 obserable.deleteObserver(observer1); } //被监听者 public class DemoObserable extends Observable { //被监听者发送数据给所有观察者 void subscribe(String data) { setChanged(); notifyObservers(data); } } }
假设观察者有多个,可以依次注册,删除:
//创建被观察者 DemoObserable obserable = new DemoObserable(); //创建一个观察者 Observer observer1 = new Observer() { //观察者接收到事件时的操作 @Override public void update(Observable observable, Object data) { Log.e("TAG", "ToObserver1: " + data); } }; //创建一个观察者 Observer observer2 = new Observer() { //观察者接收到事件时的操作 @Override public void update(Observable observable, Object data) { Log.e("TAG", "ToObserver2: " + data); } }; //添加绑定 obserable.addObserver(observer1); obserable.addObserver(observer2);然而,我们接下来使用 rx.Observer, rx.Observable, 思想也是类似的:
相关推荐
Nostalgiachild 2020-11-13
韩伟佳 2020-10-09
wuleihenbang 2020-09-16
zzqLivecn 2020-07-09
chenjinlong 2020-06-10
yinbaoshiguang 2020-06-09
sgafdsg 2020-06-04
ustcrding 2020-06-03
chenjinlong 2020-06-03
AndroidGA 2020-06-01
安辉 2020-05-27
绿豆饼 2020-05-26
CNETNews 2020-05-26
xilove0 2020-05-12
绿豆饼 2020-05-12
ChainDestiny 2020-05-07
doomvsjing 2020-05-07
hqulyc 2020-05-05
lyccsu 2020-04-30