AfinalHttp的AjaxBack简单封装
来源:互联网 发布:金融类软件测试 编辑:程序博客网 时间:2024/06/05 09:02
- 项目中以前用了些框架发现都是Afinal的。每次写请求的时候。总是要处理请求失败,或者是请求返回的结果不对,或者是session过期,等等每个请求都写的话,Activity看起来就臃肿了,所以下面对AfinalHttp的AjaxBack匿名类进行简单的分装,话不多说了,直接上代码。
/** * FinalHttp 简单封装 * @author Qiujc * */public abstract class BaseAjaxBack extends AjaxCallBack<String> { private Dialog dialog; private BaseActivity baseActivity; public BaseAjaxBack(Dialog dialog, BaseActivity baseActivity) { this.dialog = dialog; this.baseActivity = baseActivity; } @Override public void onFailure(Throwable t, int errorNo, String strMsg) { super.onFailure(t, errorNo, strMsg); Toast.makeText(baseActivity, R.string.network_error, Toast.LENGTH_SHORT) .show(); dialog.dismiss(); } @Override public void onSuccess(String t) { JSONObject object = JsonUtils.create(t); try { String respCode = object.getString("respCode"); if (respCode.equals(Constant.LOGIN_STATUS_OVERDATE)) { Toast.makeText(baseActivity, R.string.status_out_of_time, Toast.LENGTH_SHORT).show(); baseActivity.jumpToLogin(); dialog.dismiss(); return; } else if (!respCode.equals(Constant.SUCCESS_RESP_CODE)) { Toast.makeText(baseActivity, JsonUtils.gets(object, "respMsg"), Toast.LENGTH_SHORT).show(); dialog.dismiss(); return; } this.OnRequeSuccess(object.getJSONObject("data")); dialog.dismiss(); } catch (JSONException e) { e.printStackTrace(); Toast.makeText(baseActivity, R.string.network_error, Toast.LENGTH_SHORT).show(); dialog.dismiss(); } super.onSuccess(t); } @Override public void onStart() { dialog.show(); super.onStart(); } @Override public void onLoading(long count, long current) { super.onLoading(count, current); } public abstract void OnRequeSuccess(JSONObject data);}
- 把AjaxBack分装成一个抽象类。在我们使用的时候,我们只需要实现OnRequeSuccess()这个抽象方法就可以了。用的时候也是很简单。看如下代码:
public void updateApp() { FinalHttp fb = new FinalHttp(); String url = Constant.CHECK_UPDATE_URL; fb.get(url, new BaseAjaxBack(Dialog,this) { @Override public void OnRequeSuccess(JSONObject data) { Version version = GsonUtil.getObject(data.toString(), Version.class); int currentVersionCode = ComonUtils .getVerCode(BaseActivity.this); if (currentVersionCode < version.getVersioncode()) { updateApp(); } } }); }
- 总结:其实很多时候发现自己写了重复一样的代码,这时候我们就得去思考下应该把他分装一下,或者是写成一个函数,这样等你下次想增加一个错误处理的时候,就不用再每个地方增加了,你就只需要修改一个地方就好了!
1 0
- AfinalHttp的AjaxBack简单封装
- SQLSERVER简单的封装
- 简单封装的窗口
- Mutex的简单封装
- fusionchart的简单封装
- rapidxml的简单封装
- 简单的Ajax封装
- Curl 简单的封装
- 队列的简单封装
- Button的简单封装
- UITableView的简单封装
- 简单封装的httpclient
- 数据库的简单封装
- SQLite的简单封装
- RadioGroup的简单封装
- BaseAdapter的简单封装
- okhttp的简单封装
- MBProgressHUD的简单封装
- C++第六次实验—循环(实验)
- /dev/shm应该设置多大Oracle 实例启动时才能不报ORA-00845
- CodeForces 509B Painting Pebbles
- 0.1 Spark Streaming 实现思路与模块概述
- LeetCode 43. Multiply Strings(乘法)
- AfinalHttp的AjaxBack简单封装
- Java 连接hbase 进行简单操作
- C++第6次实验——项目一输出星号图
- 简谈快速排序
- 对象检测之行人检测(1)
- Effective cpp 读书笔记6
- 欢迎使用CSDN-markdown编辑器
- jQuery Ajax与prototypeJS Ajax数据获取的方式
- apache虚拟主机的配置