RxJava最近两年在Android移动端使用越发的流行起来,但是学习成本稍高。
这一篇博客主要从一个简单的例子开始,设计一下内容:
- RxJava类库的导入
- RxJav运用实例
- RxJava简单分析
1、RxJava类库的导入
Android开发中使用RxJava首先需要在gradle文件中导入类库
implementation 'io.reactivex.rxjava2:rxjava:2.0.1'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
2、RxJava运用实例
Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
e.onNext("hello!");
e.onNext("world!");
e.onNext("are you ok!");
}
});
Observer<String> observer = new Observer<String>() {
@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<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
e.onNext("hello!");
e.onNext("world!");
e.onNext("are you ok!");
}
}).subscribe(new Observer<String>() {
@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,
其实就是使用了通用的观察者模式。