RxJava核心就是异步,它也被称之为响应式编程;最大的优势就是随着程序逻辑变得越来越复杂,它依然能够保持简洁。
Rxjava真的是让人又爱又恨,因为它的线程切换和链式调用真的很好用,但是入门却有点难度,因为它和你之前对代码的理解不一样;
添加配置:
compile 'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
下面是代码:
Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> e) throws Exception { e.onNext("Hello"); e.onNext("World"); e.onNext("RxJava"); e.onComplete(); } }) .subscribe(new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { Log.i("tag", "onNext: "+value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });
输出结果:
Holle World RxJava;
看不懂?来我们这样写!
//被观察者(发射器) Observable observable = Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> e) throws Exception { e.onNext("Hello"); e.onNext("World"); e.onNext("RxJava"); e.onComplete(); } }); //观察者(接受器) Observer<String> observer = new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { Log.i("tag", "onNext: "+value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }; //订阅事件,链接发射器和接收器; observable.subscribe(observer);
如果你还是不清楚的话,那我再说一个简单的例子;Button的点击事件都用过吧;
扫描二维码关注公众号,回复:
1425552 查看本文章
Button button = new Button(this); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } });
用RxJava的思想来说它就是:
button就是一个发射器--(Observable);
onClick就是接收器--(Observer);
然后通过setOnClickListener把它们两个链接起来--(subscribe);这样onclick就能收到button的点击事件了;