/**
* 自定義Subscriber,將dialog、complete、error、錯誤返回抽取出來,實現類中只進行Success的處理
*/
public abstract class MSubscriber?extends Subscriber> {
privateLoadingDialogdialog;
private booleanflag;
publicMSubscriber() {
}
publicMSubscriber(Activitycontext) {
if(context !=null) {
dialog=newLoadingDialog(context);
dialog.setText("正在訪問網絡,請稍后...");
dialog.showDialog();
}
}
publicMSubscriber(Activitycontext,Stringmsg) {
if(context !=null) {
dialog=newLoadingDialog(context);
dialog.setText(msg);
dialog.showDialog();
}
}
publicMSubscriber(Activitycontext, booleanflag) {
if(context !=null) {
dialog=newLoadingDialog(context);
dialog.setText("正在訪問網絡,請稍后...");
dialog.showDialog();
}
this.flag= flag;
}
@Override
public voidonCompleted() {
}
@Override
public voidonError(Throwablee) {
if(dialog!=null) {
dialog.dismissDialog();
}
e.printStackTrace();
doError(e);
//ToastUtils.makeText("網絡請求失敗");
}
//選擇性重寫,處理error
protected voiddoError(Throwablee) {
}
@Override
public voidonNext(DataResponse data) {
if(dialog!=null) {
dialog.dismissDialog();
}
if("0".equals(data.status)) {
doNext(data.data);
}else{
doOther(data);
}
if(flag) {
ToastUtils.makeText(data.message);
}
}
//選擇性重寫,處理網絡訪問成功,但是不是正確的返回結果
protected voiddoOther(DataResponse data) {
}
protected abstract voiddoNext(Tdata);
}