RxJava的基础教程

创建一个Observable对象很简单,直接调用Observable.create即可.

Observable<String> myObservable = Observable.create(

   new Observable.OnSubscribe<String>() {

       public void call(Subscriber<? super String> sub) {

           sub.onNext("Hello, world!");

           sub.onCompleted();

       }

   }

);

Subscriber<String> mySubscriber = new Subscriber<String>() {

   public void onNext(String s) { System.out.println(s); }

   public void onCompleted() { }

   public void onError(Throwable e) { }

};

myObservable.subscribe(mySubscriber);

这里定义的Observable对象仅仅发出一个Hello World字符串,然后就结束了。接着我们创建一个Subscriber来处理Observable对象发出的字符串。

这里subscriber仅仅就是打印observable发出的字符串。通过subscribe函数就可以将我们定义的myObservable对象和mySubscriber对象关联起来,这样就完成了subscriber对observable的订阅。

一旦mySubscriber订阅了myObservable,myObservable就是调用mySubscriber对象的onNext和onComplete方法,mySubscriber就会打印出Hello World!

 

------------------------------

Observable.just("Hello, world33!")

   .subscribe(new Action1<String>() {

       public void call(String s) {

             System.out.println(s);

       }

   });

的更简洁写法:

Observable.just("Hello, world!")

    .subscribe(s -> System.out.println(s));

---------------------------

1.ObservableSubscriber可以做任何事情
Observable可以是一个数据库查询,Subscriber用来显示查询结果;Observable可以是屏幕上的点击事件,Subscriber用来响应点击事件;Observable可以是一个网络请求,Subscriber用来显示请求结果。

2.ObservableSubscriber是独立于中间的变换过程的。
ObservableSubscriber中间可以增减任何数量的map。整个系统是高度可组合的,操作数据是一个很简单的过程。
 

----------------------------

https://github.com/ReactiveX/RxJava/wiki

 

RxJava最核心的两个东西是Observables(被观察者,事件源)和Subscribers(观察者)。Observables发出一系列事件,Subscribers处理这些事件。这里的事件可以是任何你感兴趣的东西(触摸事件,web接口调用返回的数据。。。)

一个Observable可以发出零个或者多个事件,知道结束或者出错。每发出一个事件,就会调用它的SubscriberonNext方法,最后调用Subscriber.onNext()或者Subscriber.onError()结束。


Rxjava的看起来很想设计模式中的观察者模式,但是有一点明显不同,那就是如果一个Observerble没有任何的的Subscriber,那么这个Observable是不会发出任何事件的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值