android开发之&接口回调
来源:互联网 发布:携程程序员怒删数据库 编辑:程序博客网 时间:2024/06/08 00:43
今天做项目,有一个方法,里面调用了一个后台接口更新user信息,这个方法很多地方都会用到,然后我就把他提出来放到了application中,然后就发现了一个问题,因为那个方法中是异步调用接口,获得到结果之后无法通知给调用接口的activity(这里我们称为调用者),这时候,就需要使用接口回调了。
所谓的接口回调,就是A让B去处理一件事,但是B现在在忙,B跟A说等我忙完就处理这件事,处理好了我通知你。
下面上代码实践一下
第一步:定义接口userinfoInterface
public interface UserinfoInterface { void getUserInfo(UserInfo userInfo);}第二步:在application中定义方法getUserInfo()并将请求结果放入回调
public void getUserInfo(final UserinfoInterface userinfoInterface){ OkHttpUtils.post().url(HttpUtils.PERSONALINFO_URL).addParams("user_id",application.userInfo.getId()+"").build().execute(new MobileCallBack(){ @Override public void onError(Call call, Exception e, int id) { super.onError(call, e, id); } @Override public void onResponse(Mobile response, int id) { super.onResponse(response, id); if (response.getCode()==100){ userInfo=gson.fromJson(gson.toJson(response.getResult()).toString(),new TypeToken<UserInfo>(){}.getType()); SPUtils.setStringPreferences(getApplicationContext(),"Reading","UserInfo",gson.toJson(userInfo)); userinfoInterface.getUserInfo(userInfo); } } });}
第三步:调用application中的方法去更新user,因为这个类实现了userinfoInterface接口,所以把这个this当作参数传递过去,并且实现getUserInfo()方法去处理结果
ReadingApplication.getApplication().getUserInfo(this);@Override
public void getUserInfo(UserInfo userInfo) { this.userInfo=userInfo;}第三步也可以这样写:
ReadingApplication.getApplication().getUserInfo(new userInfoInterface(){
@Override
public void getUserInfo(UserInfo userInfo){
this.userInfo=userinfo;
}
});
其实android中好多地方都用到了接口回调,比如说最基本的按钮的点击事件,ui的事件处理方面等等。
阅读全文
0 0
- Android 开发之接口回调
- android开发之&接口回调
- Android开发之通过接口回调机制加载数据(源代码分享)
- Android开发之Http通信HttpURLConnection接口
- Android开发之Http通信HttpClient接口
- Android开发之Http通信HttpURLConnection接口
- Android开发之Http通信HttpURLConnection接口
- Android开发之Http通信HttpURLConnection接口
- Android开发之序列化接口
- Android学习笔记之接口回调
- android 接口 接口回调
- android开发之android应用程序如何调用支付宝接口
- Android 开发之Android 应用程序如何调用支付宝接口
- Android 开发之Android 应用程序如何调用支付宝接口
- android学习之路之接口回调的理解
- Android之android.graphics.drawable.Drawable.Callback回调接口
- Android学习路之Android中的接口回调(一)
- 服务器开发之Unity3d(C#)接口回调
- Error:ERROR ITMS-90474: "Invalid Bundle. iPad Multitasking support requires these orientations:
- 如何转载别人CSDN上的博客
- android Kotlin: val和var的区别
- sql模糊查询查询多个关键字
- 基于element-ui封装的分页组件,功能齐全。
- android开发之&接口回调
- nmap参数详解
- Java后端WebSocket的Tomcat实现
- MIRO业务类型
- 单片机时钟程序(7)key.h
- 浙大PAT甲级-1006
- Android热点相关功能开发
- LeetCode 515. Find Largest Value in Each Tree Row
- Maven 本地仓库明明有jar包,但是pom文件还是报错解决办法