RXJAVA之创建被观察者

  RXJava中提供了多种创建数据源的方式

使用create方法

Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>(){
   @Override
   public void subscribe(ObservableEmitter<String> arg0) throws Exception {
    arg0.onNext("123");
    arg0.onComplete();
   }});

  通过create创建Observable,通过ObservableEmitter来发送消息。

使用fromArray方法:

Observable<String> observable = Observable.fromArray("123","456");

   通过fromArray快捷创建Observable,其会把参数通过onNext发送,最后执行onComplete方法。

使用just方法:

Observable<String> observable = Observable.just("123", "456");

  通过just快捷创建Observable,其效果与fromArray一样,底层通过fromArray实现。

使用empty方法:

  创建一个什么都不做直接通知完成的Observable。

使用error方法:

  创建一个什么都不做直接通知错误的Observable。

使用timer方法:

  创建一个在给定的延时之后发射数据项为0的Observable<Long>。

Observable<Long> observable = Observable.timer(5, TimeUnit.SECONDS);

使用interval方法:

  创建一个按照给定的时间间隔发射从0开始的整数序列的Observable<Long>。

Observable<Long> observable = Observable.interval(1, TimeUnit.SECONDS);

使用range方法:

  创建一个发射指定范围的整数序列的Observable<Integer>

Observable<Integer> observable = Observable.range(1, 10);

使用defer方法:

Observable<String> observable = Observable.defer(new Callable<ObservableSource<String>>(){
   @Override
   public ObservableSource<String> call() throws Exception {
    return Observable.just("123", "456");
   }});

  在订阅时通过callable创建一个Observable,为每个订阅的Observer创建一个单独的Observable。

posted @ 2017-09-25 14:17  zwh1988  阅读(308)  评论(0编辑  收藏  举报