在RxJava有一个模型, 【观察者 】 【被观察者】
,事件的源头触发时由北观察者触发的
这里的被观察者也就是ObServable类
它的创建方式:
Observable.Create();
当然还有其方式创建:
如Observable.empty()
Observable.errror();
Observable.never()
Observable.just("1","2");
ObServable.from( )
等等
不是说事件源由被观察者Observable发起来的,那就来看看,我们怎么坦诚不良事件吧
Observable有一个方法subscibe()方法:
observable.subscribe(observer)
observable.subscribe(subscriber)
其实observer与subscriber也就是观察者与事件订阅者是同一方面,都是女友的作为
代码关系接口实现
Subscriber<T> implements Observer<T>
Subsciber扩展了onStart()方法
与是否取消方法
可订阅的判断方法
除了这种链式事件回调,还支持非完整回调
也就是只关注成功,
或者成功和失败
或者成功失败完成三个状态都关注
Action1<String> onNextAction = new Action1<String>() { // onNext() @Override public void call(String s) { Log.d(tag, s); } }; Action1<Throwable> onErrorAction = new Action1<Throwable>() { // onError() @Override public void call(Throwable throwable) { // Error handling } }; Action0 onCompletedAction = new Action0() { // onCompleted() @Override public void call() { Log.d(tag, "completed"); } }; // 自动创建 Subscriber ,并使用 onNextAction 来定义 onNext() observable.subscribe(onNextAction); // 自动创建 Subscriber ,并使用 onNextAction 和 onErrorAction 来定义 onNext() 和 onError() observable.subscribe(onNextAction, onErrorAction); // 自动创建 Subscriber ,并使用 onNextAction、 onErrorAction 和 onCompletedAction 来定义 onNext()、 onError() 和 onCompleted() observable.subscribe(onNextAction, onErrorAction, onCompletedAction);细心的你一定会发现这个三个动作状态的回调方法参数似乎不一致
首先说onNextAction(String s)也就是成功执行方法,成功肯定需要知道事件的情况,有小三,小三的名称总得知道吧
onErrorAction(Throwable throwable) 也就是错误状态执行,有一个异常参数标明错原因
onCompletedAction()并没带参数,想一想RxJava的设计不是针对正常情况设计的,女友也可以有小白脸吧,这样的事件可能同时发生两次吧,带有不确定对象因素
以上的举例并无恶意,只是哪社会现象做比喻,方便我们辛苦而伟大的工程师理解
一起探讨RxJAVA QQ群:476899320