package com.zcy.ghost.vivideo.base; import rx.Subscription; import rx.subscriptions.CompositeSubscription; /** * 基于Rx的Presenter封装,控制订阅的生命周期 */ public class RxPresenter<T> implements BasePresenter<T> { protected T mView; protected CompositeSubscription mCompositeSubscription; protected void unSubscribe() { if (mCompositeSubscription != null) { mCompositeSubscription.unsubscribe(); } } protected void addSubscribe(Subscription subscription) { if (mCompositeSubscription == null) { mCompositeSubscription = new CompositeSubscription(); } mCompositeSubscription.add(subscription); } @Override public void attachView(T view) { this.mView = view; } @Override public void detachView() { this.mView = null; unSubscribe(); } }