加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

RxJava 的基本使用

发布时间:2020-12-15 05:29:57 所属栏目:Java 来源:网络整理
导读:概述 ? RxJava 就是一个实现异步操作的库。它可以代替我们的 Handler,AsynTask。 简介 ? RxJava 最核心的两个东西是 Observables(被观察者,事件源)和 Subscribers(观察者)。? Observables 发出一系列事件,Subscribers 处理这些事件。? 一个 Observable

概述?
RxJava 就是一个实现异步操作的库。它可以代替我们的 Handler,AsynTask。


简介?
RxJava 最核心的两个东西是 Observables(被观察者,事件源)和 Subscribers(观察者)。?

Observables 发出一系列事件,Subscribers 处理这些事件。?

一个 Observable 可以发出零个或者多个事件,知道结束或者出错。每发出一个事件,就会 调用它的 Subscriber 的 onNext 方法,最后调用 Subscriber.onNext()或者 Subscriber.onError() 结束。?
注意:Rxjava 的看起来很想设计模式中的观察者模式,但是有一点明显不同,那就是如果一 个 Observerble 没有任何的的 Subscriber,那么这个 Observable 是不会发出任何事件的。

?

HelloWord?

首先关联包

compile ‘io.reactivex:rxandroid:1.2.1‘

compile ‘io.reactivex:rxjava:1.1.6‘?


//定义一个被观察者

Observable<String> myObservable = Observable.create( 
new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> sub) {
? //向观察者发出通知? ? ? ? ? ? ? ? ?
sub.onNext("Hello,world!");? ? ? ? ? ? ? ? ? ?
sub.onCompleted();? ? ? ? ? ? ? ?
    }? ? ? ? ? ?
  }? ? ? ?
);?


这里定义的 Observable 对象仅仅发出一个 Hello World 字符串,然后就结束了。

接着创建一个 Subscriber 来处理 Observable 对象发出的字符串。

?

  //观察者有三个方法     
  Subscriber<String> mySubscriber = new Subscriber<String>() { @Override public void onNext(String s) { System.out.println(s); } @Override public void onCompleted() { } @Override public void onError(Throwable e) { } }; //让观察者和被观察者产生关系 myObservable.subscribe(mySubscriber); 

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

HelloWord 简化?

//RxJava 内置了很多简化创建 Observable 对象的函数,比如 Observable.just 创建只发出一?

//个事件就结束的 Observable 对象,可以简化为一行?

Observable<String> myObservable = Observable.just("Hello,world!"); 

// 接下来看看如何简化Subscriber,上面的例子中,我们其实并不关心OnComplete和OnError,

// 只需要在 onNext 的时候做一些处理,这时候就可以使用 Action1 类。?

  Action1<String> onNextAction = new Action1<String>() { 
   @Override           
   public void call(String s) { System.out.println(s); } }; 

subscribe 方法有一个重载版本,接受三个 Action1 类型的参数,分别对应 OnNext, OnComplete, OnError 函数。?

 //现在的     
 myObservable.subscribe(onNextAction);      
 //可以再整体简化 Observable.just("Hello,world!") .subscribe(new Action1<String>() { @Override public void call(String s) { System.out.println(s); } }); 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读