RxJava与RxAndroid 被观察者的创建

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亚洲小炫风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值