初识RxJava

来源:互联网 发布:网络思想政治教育提出 编辑:程序博客网 时间:2024/06/06 09:44

RxJava 也火了很久了 RxJava我也使用了一段时间了  使用过之后  很长一段时间再不使用 就给忘了   还要重新寻找Api学习  现在做下笔记  

 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)

Rxjava  能够使我们的异步事件 清晰简洁    事务流程很清晰 , 如果有一大堆的异步调用   异步1成功之后调用 异步2  , 2了之后做一些处理 然后 又3 这样很容易把人绕晕,而且业务逻辑很不清楚,但是如果使用了 Rxjava  就很清楚了。

Rxjava 总得来说就是使用了 观察这模式 Observable (可被观察者   被观察者 也可以称作事件源 用来发出事件)Observer (观察者)Subscriber 订阅者 顾名思义和 Observer一样  是个 观察者  下面说下他的简单使用

创建观察者

Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {    @Override    public void call(Subscriber<? super String> subscriber) {         subscriber.onNext("onNext");         subscriber.onNext("onNext1");    }}) ;

创建 观察者或者订阅

Subscriber<String> subscriber = new Subscriber<String>() {    @Override    public void onStart() {        super.onStart();        System.out.print("start");    }    @Override    public void onCompleted() {    }    @Override    public void onError(Throwable e) {    }    @Override    public void onNext(String s) {        System.out.print("onNext-->"+s);    }};


然后将被观察者 和  订阅建立起关系

observable.subscribe(subscriber);

这样 observable 发送一个事件  subscriber 就能够接收到事件 onStart事件默认都会调用的  这个函数就是在onNext()函数之前 做一些准备动作  上面的 onStart() 主动调用没有任何关系 默认都是第一个调用  其他方法都要显示调用 才能 调用 。onNext 可以多次调用 但是 onError onComplete只能调用一次  调用过这两个方法之后 再调用 onNext将不起作用  表示一系列事件的终结


同样Rxjava  也提供了 一些简单的函数 来简化Subscriber 的创建 

Observable<String> observable = Observable.just("haha");
如果你不关心onComplete 和 onError函数  只关心onNext函数 那你就可以使用Action0 Action1。。Action9这个接口
Action1<String> action1 = new Action1<String>() {    @Override    public void call(String s) {        System.out.print("-->"+s);    }};

原创粉丝点击