Android RxAndroid的響應式編程

    // 使用IO線程處理, 主線程響應
    Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {
        @Override
        public void call(Subscriber<? super String> subscriber) {
            subscriber.onNext(某個耗時方法());
            subscriber.onCompleted();
        }
    }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());

    // 響應式運行
    mRxButton.setOnClickListener(v -> {
        mRxButton.setEnabled(false);
        observable.subscribe(new Subscriber<String>() {
            @Override
            public void onCompleted() {
                mRxButton.setEnabled(true);
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(String s) {
                Snackbar.make(mRootView, s, Snackbar.LENGTH_LONG).show();
            }
        });
    });

使用響應式編程可以更好的處理內存泄露問題, 代碼也更加優雅和可讀, 選擇執行線程和監聽線程也更加方便. 在destroy時, 可以關閉正在執行的異步任務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章