zoukankan      html  css  js  c++  java
  • [android] 异步http框架与实现原理

    介绍github上的异步http框架android-async-http loopj开发

    获取AsyncHttpClient对象,通过new

    调用AsyncHttpClient对象的get(url,responseHandler)方法,发送get请求,参数:urlString类型的路径,responseHandlerAsyncHttpResponseHandler对象

    想要获取返回的数据,需要重新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,定义两个回调方法onSuccessonFailure

    重写handleMessage()方法,在这个方法里面对Message对象的what属性进行判断,如果成功调用onSuccess()方法,如果失败调用onFailure()方法

    AsyncHttpClient类里发送成功的时候,调用MyHandler对象的sendMessage()方法,参数是Message对象,赋值Message对象的what属性和obj属性

    然后在主线程里面进行调用,使用方法和前面一样,这就是模板方法的一种设计理念,成功执行一个方法,失败执行一个方法

  • 相关阅读:
    添加组合索引时,做相等运算字段应该放在最前面
    常用位运算
    redis php扩展简单使用
    mysql优化之简单概念
    mysql优化之sql语句优化
    简单画图 gd库函数
    win下 安装mongodb
    伪静态之实际应用
    tomcat win简单配置
    docker
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5300038.html
Copyright © 2011-2022 走看看