Android接口回调设计
来源:互联网 发布:网络课件制作软件 编辑:程序博客网 时间:2024/06/04 18:03
因为最近是期末,很多创客的同学在做Android的大作业。昨天有个同学遇到一个问题,就是异步网络请求的数据解析返回。看了一下他的代码,他是一个函数去请求网络获取数据,并在该函数把解析到的数据返回出去(类似下面的代码):
- public String getHttpData(String url){
- String result = null;
- //此处借鉴一下xutils3网络请求框架模拟一下网络请求
- x.http().get(params, new CommonCallback<String>() {
- @Override
- public void onCancelled(CancelledException arg0) {
- }
- @Override
- public void onError(Throwable ex, boolean isOnCallback) {
- }
- @Override
- public void onFinished() {
- }
- @Override
- public void onSuccess(String s) {
- result = s;
- }
- });
- return result;
- }
其实这种问题很容易就能解决,在外面定义一个接口:
interface onGetDataListener<T>{//此处用泛型,让接口能接收各种数据类型的返回
void onGetDataSuccess(T t);//请求成功调用的方法
void onGetDataFailure(String s);//请求失败调用的方法
}
然后改造上面的的工具类中的方法
- public void getHttpData(String url , onGetDataListener<String> listener){
- // String result = null;//删除此句
- //此处借鉴一下xutils3网络请求框架模拟一下网络请求
- x.http().get(params, new CommonCallback<String>() {
- @Override
- public void onCancelled(CancelledException arg0) {
- }
- @Override
- public void onError(Throwable ex, boolean isOnCallback) {
- listener.onGetDataFailure("网络请求失败");
- }
- @Override
- public void onFinished() {
- }
- @Override
- public void onSuccess(String s) {
- // result = s;//删除此句
- listener.onGetDataSuccess(s);//利用接口把数据返回出去
- }
- });
- // return result; //删除此句
- }
类似这样**Utils.getHttpData("www.baidu.com",new onGetDataListener<String>{
void onGetDataSuccess(String t)//请求成功调用的方法
{
UIUtils.toast("请求成功,返回的数据为:" + t);
}
void onGetDataFailure(String s)//请求失败调用的方法
{
UIUtils.toast("请求失败,返回的信息为:" + s);
}
});
此篇文章仅讲解思想,类似MVP设计模式中model、view、presenter之间的利用接口回调交互模式。 其中的代码只用于体现思想,要实际运行还需要结合其它代码。
本人菜鸟一枚,高手勿喷。欢迎与我交流。
0 0
- Android接口回调设计
- android 接口 接口回调
- android 接口回调
- Android 接口回调
- android 接口回调
- Android-接口回调
- Android接口回调
- Android 回调接口
- Android接口回调
- android 接口回调
- Android 回调接口
- Android接口回调
- Android 接口回调
- Android接口回调
- android接口回调
- 设计模式_接口回调
- 设计模式_接口回调
- 44 Android 接口回调
- 负载均衡器LVS详解
- js数组应用
- 定时关机
- jquery easyui实现汉字拼音首字母模糊查询
- mysql编码配置
- Android接口回调设计
- Https在4.4以下手机上不好用问题,用okhttp进行设置可以解决
- 对chrome中出现已尝试对扩展程序降级的问题的一点尝试
- Botan的编译及MD5计算
- Deep Learning(深度学习)学习笔记整理系列之(五)
- git cherry-pick&git 分支重命名
- 文章标题
- 稳扎稳打JavaScript(一)——作用域链内存模型
- iOS OC笔记1