-
Notifications
You must be signed in to change notification settings - Fork 614
callback
请求回调本库提供两种方式Callback和Subscriber
此种方式主要针对execute(CallBack callBack),目前内部提供的回调包含CallBack, SimpleCallBack ,ProgressDialogCallBack ,DownloadProgressCallBack 可以根据自己的需求去自定义Callback
- CallBack所有回调的基类,抽象类
- SimpleCallBack简单回调,只有成功和失败
- ProgressDialogCallBack带有进度框的回调,可以自定义进度框、支持是否可以取消对话框、对话框消失自动取消网络请求等参数设置
- DownloadProgressCallBack如果要做文件下载,则必须使用该回调,内部封装了关于文件下载进度回调的方法,如果使用其他回调也可以,但是没有进度通知
该网络框架的核心使用方法即为Callback的继承使用,因为不同的项目需求,会有个性化的回调请自定义
new CallBack<T>() {
@Override
public void onStart() {
//请求开始
}
@Override
public void onCompleted() {
//请求完成
}
@Override
public void onError(ApiException e) {
//请求失败
}
@Override
public void onSuccess(T t) {
//请求成功
}
}
new SimpleCallBack<T>() {
@Override
public void onError(ApiException e) {
//请求失败
}
@Override
public void onSuccess(T t) {
//请求成功
}
}
可以自定义带有加载进度框的回调,取消对话框会自动取消掉网络请求
提供两个构造
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;
}
};
此回调只用于文件下载,具体请看文件下载讲解
如果对回调有特殊需求,支持可以继承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有特殊需求,支持可以继承BaseSubscriber自己扩展订阅者
邮箱地址: [email protected] QQ群: 581235049(建议使用QQ群,邮箱使用较少,可能看的不及时) 本群旨在为使用我的github项目的人提供方便,如果遇到问题欢迎在群里提问。一个人的能力也有限,希望一起学习一起进步。 关注我的github,了解我的最新项目。关注我的博客,阅读我的最新文章。