Skip to content

callback

周游 edited this page Jul 17, 2017 · 1 revision

请求回调和订阅

请求回调本库提供两种方式Callback和Subscriber

回调方式

此种方式主要针对execute(CallBack callBack),目前内部提供的回调包含CallBack, SimpleCallBack ,ProgressDialogCallBack ,DownloadProgressCallBack 可以根据自己的需求去自定义Callback

  • CallBack所有回调的基类,抽象类
  • SimpleCallBack简单回调,只有成功和失败
  • ProgressDialogCallBack带有进度框的回调,可以自定义进度框、支持是否可以取消对话框、对话框消失自动取消网络请求等参数设置
  • DownloadProgressCallBack如果要做文件下载,则必须使用该回调,内部封装了关于文件下载进度回调的方法,如果使用其他回调也可以,但是没有进度通知

该网络框架的核心使用方法即为Callback的继承使用,因为不同的项目需求,会有个性化的回调请自定义

CallBack回调

new CallBack<T>() {
                    @Override
                    public void onStart() {
                       //请求开始
                    }

                    @Override
                    public void onCompleted() {
                       //请求完成
                    }

                    @Override
                    public void onError(ApiException e) {
                       //请求失败
                    }

                    @Override
                    public void onSuccess(T t) {
                       //请求成功
                    }
                }

SimpleCallBack回调

new SimpleCallBack<T>() {
                    @Override
                    public void onError(ApiException e) {
                         //请求失败
                    }

                    @Override
                    public void onSuccess(T t) {
                        //请求成功
                    }
                }

ProgressDialogCallBack回调

可以自定义带有加载进度框的回调,取消对话框会自动取消掉网络请求

提供两个构造

public ProgressDialogCallBack(IProgressDialog progressDialog);//默认不能取消对话框 public ProgressDialogCallBack(IProgressDialog progressDialog, boolean isShowProgress, boolean isCancel);//自定义加载进度框,可以设置是否显示弹出框,是否可以取消 progressDialog: dialog对象接口 isShowProgress:对话框消失是否取消网络请求 isCancel:是否可以取消对话框对应Dialog的setCancelable(isCancel)方法;

自定义ProgressDialog对话框

 private IProgressDialog mProgressDialog = new IProgressDialog() {
        @Override
        public Dialog getDialog() {
            ProgressDialog dialog = new ProgressDialog(MainActivity.this);
            dialog.setMessage("请稍候...");
            return dialog;
        }
    };

DownloadProgressCallBack回调

此回调只用于文件下载,具体请看文件下载讲解

自定义CallBack回调

如果对回调有特殊需求,支持可以继承CallBack自己扩展功能

订阅方式

此种方式主要是针对execute(Class clazz)和execute(Type type),目前内部提供的Subscriber包含BaseSubscriber、DownloadSubscriber、ProgressSubscriber,可以根据自己的需求去自定义Subscriber

  • BaseSubscriber所有订阅者的基类,抽象类
  • DownloadSubscriber下载的订阅者,上层不需要关注
  • ProgressSubscriber带有进度框的订阅,可以自定义进度框、支持是否可以取消对话框、对话框消失自动取消网络请求等参数设置
new BaseSubscriber<T>() {
            @Override
            public void onError(ApiException e) {
               //请求失败
            }

            @Override
            public void onNext(T t) {
                //请求成功
            }
        }
new ProgressSubscriber<T>(this, mProgressDialog) {
                    @Override
                    public void onError(ApiException e) {
                        super.onError(e);
                        //请求失败
                    }

                    @Override
                    public void onNext(T t) {
                         //请求成功
                    }
                }

自定义Subscriber

如果对Subscriber有特殊需求,支持可以继承BaseSubscriber自己扩展订阅者

Clone this wiki locally