[android] 异步http框架与实现原理
介绍github上的异步http框架android-async-http loopj开发
获取AsyncHttpClient对象,通过new
调用AsyncHttpClient对象的get(url,responseHandler)方法,发送get请求,参数:url是String类型的路径,responseHandler是AsyncHttpResponseHandler对象
想要获取返回的数据,需要重新AsyncHttpResponseHandler类的onSuccess()方法,直接使用匿名内部类的方式重写,方法是个回调函数,参数就是返回的内容String类型
重写onFailure()方法,请求失败的时候调用。
自己实现一个精简版的异步http框架
我们的http请求经历这样两个阶段:
1.开启子线程,在子线程执行一个http请求
2.子线程执行完毕之后,通知ui界面更新
创建一个类叫AsyncHttpClient,定义一个方法叫get(String path),
在这个方法里面开启子线程,直接new Thread重写run方法,
在run方法里面,获取HttpClient对象,获取HttpGet对象,调用HttpClient对象的execute()方法,这个时候需要使用Handler对象传递信息给主线程
在get()方法里面加个参数MyHandler对象,这个对象继承自Handler
创建一个类叫MyHandler继承Handler,定义两个回调方法onSuccess和onFailure
重写handleMessage()方法,在这个方法里面对Message对象的what属性进行判断,如果成功调用onSuccess()方法,如果失败调用onFailure()方法
在AsyncHttpClient类里发送成功的时候,调用MyHandler对象的sendMessage()方法,参数是Message对象,赋值Message对象的what属性和obj属性
然后在主线程里面进行调用,使用方法和前面一样,这就是模板方法的一种设计理念,成功执行一个方法,失败执行一个方法
相关文章
- 微信小程序实现上拉和下拉加载更多
- 微信小程序 scroll-view 完成上拉加载更多
- 微信小程序实现tabs选项卡
- java和vue学生定位打卡小程序人脸识别打卡系统源码网站学生考勤系统
- Java疫苗预约小程序线上疫苗预约系统
- 移动研发提效?小程序容器技术来帮忙!
- 微信小程序(一)自定义导航栏和fixed失效及各机型兼容问题
- 微信小程序(二)学妹问我微信小程序左滑删除怎么实现
- 微信小程序(三)实现类似Vue中的 computed,watch 功能
- 微信小程序(四)绝对不可错过切换自定义菜单栏的骚操作
- 一文说透小程序插件及其作用价值
- android learning
- 微信小程序HTTPS - cenos apache 下安装SSL证书
- 3小时!开发ChatGPT微信小程序
- iOS 裁包大作战 —— JOOX Music 如何瘦身40MB
- 只需4步!带你成功将小程序转为APP
- 设计师应该了解的iOS应用开发基础知识
- 小程序容器技术成为组装式应用基础
- 「Native+小程序」,App热更新技术最优解
- 混合式App开发背景下,「Native+小程序」成为最优解