Rxjava2 disposable.dispose();和compositeDisposable.dipose();

博客指出Rxjava2中disposable.dispose()和compositeDisposable.dipose()与Rxjava对应方法不同,还提到compositeDisposable使用compositeDisposable.clear()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

disposable.dispose();
compositeDisposable.dipose();

Rxjava2的这两个跟Rxjava对应的不太一样
compositeDisposable用
compositeDisposable.clear();

package com.qish.tenmentapp.net.response; import com.qish.tenmentapp.net.exception.ApiException; import com.qish.tenmentapp.util.ReflectUtils; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.ObservableSource; import io.reactivex.rxjava3.core.ObservableTransformer; import io.reactivex.rxjava3.disposables.CompositeDisposable; import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.functions.Consumer; import io.reactivex.rxjava3.functions.Function; import io.reactivex.rxjava3.schedulers.Schedulers; public class ResponseTransformer<T> implements ObservableTransformer<IResponse<T>, T> { private CompositeDisposable compositeDisposable; public ResponseTransformer(CompositeDisposable compositeDisposable) { this.compositeDisposable = compositeDisposable;} public ResponseTransformer() {} @Override public ObservableSource<T> apply(Observable<IResponse<T>> upstream) { return upstream.doOnSubscribe(new Consumer<Disposable>() { @Override public void accept(Disposable disposable) throws Exception { if (compositeDisposable != null) { compositeDisposable.add(disposable); } } }).onErrorResumeNext(new Function<Throwable, ObservableSource<? extends IResponse<T>>>() { @Override public ObservableSource<? extends IResponse<T>> apply(Throwable throwable) throws Exception { return Observable.error(ApiException.handleException(throwable)); } }) .flatMap(new Function<IResponse<T>, ObservableSource<T>>() { @Override public ObservableSource<T> apply(IResponse<T> response) throws Exception { if (response.isSuccess()) { if (response.getData() != null) { return Observable.just(response.getData()); } else { try { Class<?> clz = ReflectUtils.analysisClassInfo(response); T obj = (T) clz.newInstance(); return Observable.just(obj); } catch (Exception e) { e.printStackTrace(); } } } return Observable.error(new ApiException(response.getCode(),response.getMessage())); } }).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } public static <U> ResponseTransformer<U> obtain(CompositeDisposable compositeDisposable) { return new ResponseTransformer<>(compositeDisposable); } public static <U> ResponseTransformer<U> obtain() { return new ResponseTransformer<>(); } } 优化代码
最新发布
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值