RxJava 2.0的基本使用
生活随笔
收集整理的這篇文章主要介紹了
RxJava 2.0的基本使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
之前在android項目中使用的是RxJava 1.x和RxAndroid,結(jié)合Retrofit處理網(wǎng)絡(luò)請求,比起Handler, AsyncTask確實開發(fā)起來方便很多,架構(gòu)也比較清晰。
RxJava 2.0新版出來已經(jīng)有段時間了,也計劃著更新一下項目。
通過JetBrain IntelliJ IDEA創(chuàng)建一個Gradle工程。
加入RxJava的依賴
sourceCompatibility = 1.8 repositories {//mavenLocal() //maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} jcenter() }dependencies {compile "io.reactivex.rxjava2:rxjava:2.0.7" testCompile group: 'junit', name: 'junit', version: '4.11' }首先使用最普通的模式
//定義被觀察者 //RxJava 2.0 保留了Observable, 不支持背壓 Observable observable = Observable.create(new ObservableOnSubscribe<String>() {@Override public void subscribe(ObservableEmitter e) throws Exception {// emitter 發(fā)射器 e.onNext("hello");e.onNext("world");e.onComplete();} });//定義觀察者 Observer<String> observer = new Observer<String>(){@Override public void onSubscribe(Disposable d) {// disposable 一次性的 System.out.println("onSubscribe");}@Override public void onNext(String s) {System.out.println("onNext: " + s);}@Override public void onError(Throwable e) {System.out.println("onError");}@Override public void onComplete() {System.out.println("onComplete");}};// 建立被觀察者和觀察者之間的訂閱關(guān)系 observable.subscribe(observer);接著使用支持背壓的模式
//定義被觀察者 Flowable支持背壓 Flowable<String> flowable = Flowable.create(new FlowableOnSubscribe<String>() {@Override public void subscribe(FlowableEmitter<String> e) throws Exception {e.onNext("hello");e.onNext("world");e.onComplete();} }, BackpressureStrategy.BUFFER);//定義觀察者 Subscriber subscriber = new Subscriber<String>(){@Override public void onSubscribe(Subscription s) {System.out.println("onSubscribe");//React Pull s.request(Long.MAX_VALUE);}@Override public void onNext(String s) {System.out.println("onNext: " + s);}@Override public void onError(Throwable t) {System.out.println("onError");}@Override public void onComplete() {System.out.println("onComplete");} };// 建立被觀察者和觀察者之間的訂閱關(guān)系 flowable.subscribe(subscriber);一種簡化寫法
String[] s = {"Hello", "world"}; Flowable.fromArray(s).subscribe(new Consumer<String>() {@Override public void accept(String s) {System.out.println(s);}});更外一種更簡單的寫法
Flowable.fromArray(s).subscribe(System.out::println);
參考資料
背壓問題說明
https://github.com/ReactiveX/RxJava/wiki/Backpressure
官方網(wǎng)站
https://github.com/ReactiveX/RxJava
http://www.vogella.com/tutorials/RxJava/article.html#rxjava-observable-types
總結(jié)
以上是生活随笔為你收集整理的RxJava 2.0的基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Webpack2的基本使用
- 下一篇: java美元兑换,(Java实现) 美元