package licola.demo.com.huabandemo.Base; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatDialogFragment; import licola.demo.com.huabandemo.Util.Logger; import rx.Subscription; import rx.subscriptions.CompositeSubscription; /** * Created by LiCola on 2016/05/06 14:38 * 预留的所有DialogFragment抽象父类 */ public abstract class BaseDialogFragment extends AppCompatDialogFragment { protected String TAG = getTAG(); protected abstract String getTAG(); //联网的授权字段 几乎所有的Fragment子类都有联网功能 故父类提供变量 protected String mAuthorization; private CompositeSubscription mCompositeSubscription; public CompositeSubscription getCompositeSubscription() { if (this.mCompositeSubscription == null) { this.mCompositeSubscription = new CompositeSubscription(); } return this.mCompositeSubscription; } public void addSubscription(Subscription s) { if (s == null) { return; } if (this.mCompositeSubscription == null) { this.mCompositeSubscription = new CompositeSubscription(); } this.mCompositeSubscription.add(s); } @Override public String toString() { return getClass().getSimpleName() + " @" + Integer.toHexString(hashCode()); } @Override public void onAttach(Activity activity) { super.onAttach(activity); Logger.d(TAG); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Logger.d(TAG); } public void throwRuntimeException(Context context) { throw new RuntimeException(context.toString() + " must implement OnDialogInteractionListener"); } @Override public void onDestroyView() { super.onDestroyView(); Logger.d(TAG); } @Override public void onDestroy() { super.onDestroy(); Logger.d(TAG); if (this.mCompositeSubscription != null) { this.mCompositeSubscription.unsubscribe(); } HuaBanApplication.getRefwatcher(getActivity()).watch(this); } }