package com.lzy.demo.callback; import android.app.Activity; import android.app.ProgressDialog; import android.support.annotation.Nullable; import android.view.Window; import com.lzy.okgo.request.BaseRequest; /** * ================================================ * 作 者:廖子尧 * 版 本:1.0 * 创建日期:2016/1/14 * 描 述:对于网络请求是否需要弹出进度对话框 * 修订历史: * ================================================ */ public abstract class DialogCallback<T> extends JsonCallback<T> { private ProgressDialog dialog; private void initDialog(Activity activity) { dialog = new ProgressDialog(activity); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setCanceledOnTouchOutside(false); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); dialog.setMessage("请求网络中..."); } public DialogCallback(Activity activity) { super(); initDialog(activity); } @Override public void onBefore(BaseRequest request) { super.onBefore(request); //网络请求前显示对话框 if (dialog != null && !dialog.isShowing()) { dialog.show(); } } @Override public void onAfter(@Nullable T t, @Nullable Exception e) { super.onAfter(t, e); //网络请求结束后关闭对话框 if (dialog != null && dialog.isShowing()) { dialog.dismiss(); } } }