框架系列 02:Rxjava(1)

Published: 11 May 2018 Category: 框架
Rxjava基础

  • 最核心的两个东西:
    • Observables(被观察者,事件源)
    • Subscribers(观察者)
  • 两者之间的联系:

    • Observables发出一系列事件,Subscribers处理这些事件。这里的事件可以是任何你感兴趣的东西(触摸事件,web接口调用返回的数据。。。)
    • 一个Observable可以发出零个或者多个事件,直到结束或者出错。每发出一个事件,就会调用它的Subscriber的onNext方法,最后调用Subscriber.onNext()或者Subscriber.onError()结束。
  • 特点:
    • Rxjava的看起来很像设计模式中的观察者模式,但是有一点明显不同,那就是如果一个Observerble没有任何的的Subscriber,那么这个Observable是不会发出任何事件的
  • 举例:
    • 创建一个Observable对象很简单,直接调用Observable.create即可
          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) {
      		}
      };
    	
    
* 这里subscriber仅仅就是打印observable发出的字符串。通过subscribe函数就可以将我们定义的myObservable对象和mySubscriber对象关联起来,这样就完成了subscriber对observable的订阅。
```
	myObservable.subscribe(mySubscriber);  

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

参考链接: