package com.pandaq.pandaeye; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.Disposable; /** * Created by PandaQ on 2016/9/8. * email : 767807368@qq.com * 所有的Presenter都继承自此Presenter */ public class BasePresenter { //将所有正在处理的Subscription都添加到CompositeSubscription中。统一退出的时候注销观察 private CompositeDisposable mCompositeDisposable; protected void addDisposable(Disposable subscription) { if (mCompositeDisposable == null || mCompositeDisposable.isDisposed()) { //csb 如果解绑了的话添加 sb 需要新的实例否则绑定时无效的 mCompositeDisposable = new CompositeDisposable(); } mCompositeDisposable.add(subscription); } //在界面退出等需要解绑观察者的情况下调用此方法统一解绑,防止Rx造成的内存泄漏 public void dispose() { if (mCompositeDisposable != null) { mCompositeDisposable.dispose(); } } }