Android-->RxJava2更新體驗

來源:互聯網
上載者:User

標籤:表示   AC   code   參數   div   sites   ssi   final   eem   

截止日前最新版2017-3-15: 
RxJava

compile ‘io.reactivex:rxjava:1.2.7’ compile ‘io.reactivex:rxandroid:1.2.1’

RxJava2

compile “io.reactivex.rxjava2:rxjava:2.0.7” compile “io.reactivex.rxjava2:rxandroid:2.0.1”

1:create操作改變 
Rxjava

CompositeSubscription compositeSubscription = new CompositeSubscription();Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {    @Override    public void call(Subscriber<? super String> subscriber) {        subscriber.onNext("1");        subscriber.onNext("2");        //e.onComplete();        subscriber.onError(new NullPointerException());    }});Subscription subscribe = observable.subscribe(new Observer<String>() {    @Override    public void onCompleted() {    }    @Override    public void onError(Throwable e) {    }    @Override    public void onNext(String s) {    }});//取消訂閱subscribe.unsubscribe();//或者compositeSubscription.add(subscribe);compositeSubscription.unsubscribe();

RxJava2

final CompositeDisposable compositeDisposable = new CompositeDisposable();Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {    @Override    public void subscribe(ObservableEmitter<String> e) throws Exception {        e.onNext("1");        e.onNext("2");        //e.onComplete();        e.onError(new NullPointerException());    }});//subscribe方法返回void類型observable.subscribe(new Observer<String>() {    @Override    public void onSubscribe(Disposable d) {        compositeDisposable.add(d);    }    @Override    public void onNext(String s) {    }    @Override    public void onError(Throwable e) {    }    @Override    public void onComplete() {    }});compositeDisposable.dispose();

2:新增Flowable

Flowable<String> stringFlowable = Flowable       .create(new FlowableOnSubscribe<String>() {           @Override           public void subscribe(FlowableEmitter<String> e) throws Exception {               e.onNext("1");               e.onNext("2");               e.onComplete();               //e.onError(new NullPointerException());           }       }, BackpressureStrategy.ERROR)       .subscribeOn(Schedulers.newThread())       .observeOn(Schedulers.newThread());stringFlowable.subscribe(new Subscriber<String>() {   @Override   public void onSubscribe(Subscription s) {       //s.request(1);       // 參數表示接受多少次onNext回調.       // 當onNext回調次數和這個參數不一致時, 則通過BackpressureStrategy.ERROR參數決定之後的處理       // 不調用等價於request(0).       // 典型的錯誤MissingBackpressureException異常       // 注意: Flowable請盡量在非同步線程使用,否則很容易出現MissingBackpressureException異常   }   @Override   public void onNext(String s) {   }   @Override   public void onError(Throwable t) {   }   @Override   public void onComplete() {   }});

 

Android-->RxJava2更新體驗

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.