RxAndroid简化了一个常见的模式?

时间:2015-12-15 22:25:21

标签: java android rx-java rx-android

我发现自己一遍又一遍地写作:

Observable.create(new Observable.OnSubscribe</* some type */>() {
        @Override
        public void call(Subscriber<? super /* some type */> subscriber) {
            try {
                subscriber.onNext(/* do something */);
                subscriber.onCompleted();
            } catch (IOException e) {
                subscriber.onError(e);
            }
        }
    }).observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.newThread());

用于网络运营。

有没有办法减少重复性?

1 个答案:

答案 0 :(得分:2)

第一个create可以替换为fromCallable

Observable.fromCallable(() -> calculationReturnsAValue());

可以通过创建Transformer来实现调度程序的应用:

Transformer schedulers = o -> 
    o.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());

并与之合作:

source.compose(schedulers);