RetrofitUtil.getService().doGet(url,map) .subscribeOn(Schedulers.io())//在io线程获取数据 .observeOn(AndroidSchedulers.mainThread())//在android主线程梳理数据 .subscribe(new Observer<ResponseBody>() { @Override public void onSubscribe(Disposable d) { CategaryModel.this.d = d; } @Override public void onNext(ResponseBody responseBody) { //代表获取到数据 prensenterInter.onSuccess(responseBody); } @Override public void onError(Throwable e) { //发生错误 prensenterInter.onError(e); } @Override public void onComplete() { //完成 事件队列已经到最后 } });
public abstract class BasePresenter<T> { protected Reference<T> mViewRef;//View接口类型弱引用 public void attachView(T view) { mViewRef = new WeakReference<T>(view); //建立关联 } protected T getView() { return mViewRef.get();//获取View } public boolean isViewAttached() {//判断是否与View建立了关联 return mViewRef != null && mViewRef.get() != null; } public void detachView() {//解除关联 if (mViewRef != null) { mViewRef.clear(); mViewRef = null; } } }