RxJava编程是什么?一分钟了解

版权声明:转载请在开头注明博客原地址,谢谢! https://blog.csdn.net/qq_35928566/article/details/82949238

首先看一段代码,所有的一切都从这段代码说起。

//创建被观察者
Observable.create(new ObservableOnSubscribe<String>() {
   @Override
   //默认在主线程里执行该方法
   public void subscribe(@NonNull ObservableEmitter<String> e) throws Exception {
       e.onNext("X");
       e.onComplete();
   }
})
//将被观察者切换到子线程
.subscribeOn(Schedulers.io())
//将观察者切换到主线程
.observeOn(AndroidSchedulers.mainThread())
//创建观察者并订阅
.subscribe(new Observer<String>() {
   @Override
   public void onSubscribe(Disposable d) {
   }
   @Override
   public void onNext(String s) {
       Log.e("onNext", s);
   }
   @Override
   public void onError(Throwable e) {
   }
   @Override
   public void onComplete() {
   }
});

1、我们用Observable对象的create方法创建了一个被观察者。然后我们new了一个 ObservableOnSubscribe对象作为参数,它是一个任务表,当 Observable被订阅的时候,ObservableOnSubscribe的subscribe()方法会自动被调用,事件序列就会依照设定依次触发,被观察者调用了观察者的方法,实现了观察者模式。
2、subscribeOn()这个方法决定被观察者运行的线程
3、observeOn()这个方法决定观察者的运行线程
注:以上2、3两条的用处在哪呢?Andriod中网络请求必须在子线程中执行,所以就可以将网络请求被观察者放在子线程中,然后观察者放在主线程中,就可以实现请求数据然后操作UI实现交互。
4、最后就是订阅了,新建一个观察者作为参数,这里面的每个方法调用由subscribe()方法调用,从而实现逻辑业务。

这就是简单的RxJava编程。

猜你喜欢

转载自blog.csdn.net/qq_35928566/article/details/82949238