RxJava最近两年在Android移动端使用越发的流行起来,但是学习成本稍高。
这一篇博客主要从一个简单的例子开始,设计一下内容:
- RxJava类库的导入
- RxJava小例子
- RxJava简单分析
1、RxJava类库的导入
Android开发中使用RxJava首先需要在gradle文件中导入类库
implementation 'io.reactivex.rxjava2:rxjava:2.0.1'implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
2、RxJava小例子
Observableobservable = Observable.create(new ObservableOnSubscribe () { @Override public void subscribe(ObservableEmitter e) throws Exception { e.onNext("hello!"); e.onNext("world!"); e.onNext("are you ok!"); } }); Observer observer = new Observer () { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { Log.d(TAG, "onNext " + value + ""); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }; /** * 测试rxjava测试 */ private void rxTest() { observable.subscribe(observer); }
结果:
09-12 19:35:45.920 30215-30215/hq.demo.net D/NewOkHttpFragment: onNext hello!09-12 19:35:45.920 30215-30215/hq.demo.net D/NewOkHttpFragment: onNext world!09-12 19:35:45.920 30215-30215/hq.demo.net D/NewOkHttpFragment: onNext are you ok!
或者采用链式调用
/** * 测试rxjava测试链式调用 */ private void rxTestChain() { Observable.create(new ObservableOnSubscribe() { @Override public void subscribe(ObservableEmitter e) throws Exception { e.onNext("hello!"); e.onNext("world!"); e.onNext("are you ok!"); } }).subscribe(new Observer () { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { Log.d(TAG, "onNext " + value + ""); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); }
3、RxJava简单分析
RxJava涉及几个角色:
1)Observable :被观察者
2)Observer:观察者
3)subscribe:订阅方法
4)事件
Observer通过subscribe与Observable关联,Observable
可以在其产生变化的时候发出事件来通知 Observer,
其实就是使用了通用的观察者模式。