ProgressCallback

public abstract class ProgressCallback implements Callback {

privateBaseActivitymBaseActivity;

private booleanisShowDialog;

privateObjecttag;

publicProgressCallback(BaseActivity baseActivity) {

this(baseActivity, true);

}

publicProgressCallback(BaseActivity baseActivity, booleanisShowDialog) {

if(baseActivity ==null)throw newNullPointerException();

this.mBaseActivity= baseActivity;

this.isShowDialog= isShowDialog;

onStart();

}

@Override

public voidonResponse(Call call,Response response) {

LogUtil.net("onResponse");

call.cancel();

if(response.body() ==null) {

onFailure(call, newNullPointerException("response.body() is null"));

}else{

onProgressSuccess(call,response.body());

onFinish();

}

}

@Override

public voidonFailure(Call call,Throwable e) {

LogUtil.err("onFailure"+ e.getMessage());

e.printStackTrace();

if(einstanceofConnectException) {

ToastUtil.show(NetworkUtil.isNetworkConnected(mBaseActivity) ? R.string.net_server_connectexception: R.string.net_connectexception);

}else if(einstanceofUnknownHostException) {

ToastUtil.show(R.string.net_unknownhostexception);

}else if(einstanceofSocketException) {

ToastUtil.show(R.string.net_socketexception);

}else if(einstanceofSocketTimeoutException) {

ToastUtil.show(R.string.net_sockettimeoutexception);

}else if(einstanceofIOException) {

ToastUtil.show(R.string.server_internal_error);

}else if(einstanceofNullPointerException) {

ToastUtil.show(R.string.server_internal_error);

}else if(einstanceofAppException) {

ToastUtil.showLong(e.getMessage());

//TODO: 2017/6/12统一处理异常

AppException exception = (AppException) e;

if(exception.errorCode== HttpCode.TOKEN_INVALID) {

//AppStatusTracker.getInstance().setAppStatus(ConstantValue.STATUS_KICK_OUT);

mBaseActivity.kickOut();

}

}else{

ToastUtil.showLong(e.toString());

}

onProgressFailure(call,e);

onFinish();

}

public voidonStart() {

if(isShowDialog)mBaseActivity.showFocusWaitDialog();

}

public voidonFinish() {

if(isShowDialog)mBaseActivity.hideFocusWaitDialog();

}

//------------------------------抽象方法实现-------------------------------------------------

protected abstract voidonProgressSuccess(Call call,Tresult);

protected abstract voidonProgressFailure(Call call,Throwable t);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 1,998评论 0 2
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,536评论 0 17
  • 星期天,休假在家。无数计划,一点行动。如何才能 跟上心的节奏。想像如飞马,实施如蜗牛。
    欢颜Love阅读 120评论 0 0