.as(AutoDispose.<Long>autoDisposable(AndroidLifecycleScopeProvider.from(this)))报错

本文解决了一个在使用AutoDispose管理RxAndroid生命周期时遇到的问题:.as(AutoDispose.&lt;Long&gt;autoDisposable(AndroidLifecycleScopeProvider.from(this)))在from(this)处报错。解决方案是让当前activity继承AppCompatActivity,因为AppCompatActivity默认实现了LifecycleOwner接口,这是使用AutoDispose所必需的。

今天在学习使用AutoDispose管理RxAndroid生命周期的过程中,发现.as(AutoDispose.<Long>autoDisposable(AndroidLifecycleScopeProvider.from(this)))在from(this)这里报错,Cannot resolve method 'from(com.dimanche.autodispose.BActivity)',首先上解决办法:

使当前activity继承AppCompatActivity即可,

因为使用AutoDispose时需要当前activity实现LifecycleOwner接口,而AppCompatActivity是默认实现了该接口

 

加入我的行列:


(嘿嘿嘿,点击这里关于我哦,分享小知识):https://www.jianshu.com/p/7d19f0df5b6b

public class ResponseTransformer<T> implements ObservableTransformer<IResponse<T>, T> { private CompositeDisposable compositeDisposable; public ResponseTransformer(@NonNull 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(response -> handleResponse(response)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } private ObservableSource<T> handleResponse(IResponse<T> response) { if (!response.isSuccess()) { return Observable.error(new ApiException(response.getCode(), response.getMessage())); } if (response.getData() != null) { return Observable.just(response.getData()); } try { Class<?> clz = ReflectUtils.analysisClassInfo(response); return Observable.just((T) clz.newInstance()); } catch (Exception e) { return Observable.error(new ApiException(response.getCode(), "Reflection instantiation failed")); } } 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、付费专栏及课程。

余额充值