Android Volley 框架的使用(一)

由于这部分内容较多,所以打算分成几个部分来写,这篇文章主要是从整体上介绍Volley框架的基本使用;

为什么要使用Volley框架

开发android应用很多时候都要涉及网络操作,Android SDK中提供了HttpClientHttpUrlConnection两种方式用来处理网络操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图像缓存,请求的调度等等;

而Volley框架就是为解决这些而生的,它与2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷;抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request。另外,Volley在不同的线程上异步执行所有请求而避免了阻塞主线程。

Volley到底有哪些特点呢?

  • 自动调度网络请求
  • 多个并发的网络连接
  • 通过使用标准的HTTP缓存机制保持磁盘和内存响应的一致
  • 支持请求优先级
  • 支持取消请求的强大API,可以取消单个请求或多个
  • 易于定制
  • 健壮性:便于正确的更新UI和获取数据
  • 包含调试和追踪工具

如何使用Volley

获取Volley:
- git clone https://android.googlesource.com/platform/frameworks/volley
或者https://github.com/mcxiaoke/android-volley
你也可以直接下载 volley.jar
- 如果你是通过git clone方式,为了生成voller.jar你需要在volley目录下执行:

android update project -p ant jar

将Volley添加进项目:
- 将volley.jar 粘贴进libs文件夹下,然后右键volley.jar文件,选择Add as Library

Volley中的RequestQueue 和 Request

根据字面意思我们不难看出

  • RequestQueue 用来执行请求的请求队列
  • Request 用来构造一个请求对象
  • Request对象主要有以下几种类型:
    • StringRequest 响应的主体为字符串
    • JsonArrayRequest 发送和接收JSON数组
    • JsonObjectRequest 发送和接收JSON对象
    • ImageRequest 发送和接收Image

Volley的基本使用

首先我们需要创建一个RequestQueue reqQueue,然后构建一个自己所需要的XXRequest req,之后通过reqQueue.add(req);将请求添加至请求队列;

构建一个RequestQueue

    RequestQueue requestQueue=Volley.newRequestQueue(this);//这里的this指的是Context

创建一个Request(以JsonObjectRequest为例)

    private final String url="http://www.xxx.com/person.json"//所需url    JsonObjectRequest req=new JsonObjectRequest(url,null,new Response.Listener<JsonObject>(){        @Override        public void onResponse(JsonObject response){            //添加自己的响应逻辑,        }    },    new ResponseError.Listener(){        @Override        public void onResponseError(VollerError error){            //错误处理            Log.d("Error Message:","Error is"+error);        }    });

将request添加到requestQueue

    requestQueue.add(req);

在构建JsonObjectRequest对象时,需要四个参数

JsonObjectRequest req= new JsonObjectRequest(String url,Request.Method.GET(或者POST),new Response.Listener(),new ResponseError.Listener()),

其中第二个参数代表http方法,第三个和第四个分别是响应监听和响应错误监听,分别需要覆写onResponse()onResponseError()方法;RequestQueue将会执行请求,并将响应回调onResponse()方法,所以需要在onResponse()方法中实现自己的业务逻辑;

关于更多有关Volley的用法,请关注个人博客或微博,随后更新!

  • 微博:@明桑Android黑历史,
  • 邮箱:<13141459344@163.com>
  • 个人主页:Coder:程序员&&工科男的日常,

更多相关文章

  1. android 使用mediaplayer播放网络音乐
  2. Android(安卓)热修复框架 AndFix (一)
  3. Android(安卓)路由框架
  4. 关于如何检测Android的内存泄漏:
  5. android窗口管理剖析
  6. 转发---Android(安卓)DRM
  7. Android通用流行框架大全
  8. Android(安卓)IPC 机制详解:IBinder
  9. Android(安卓)热更新是如何实现的?

随机推荐

  1. MySQL中mysqldump导出数据的使用
  2. 现在开发用的都是PDO还是Mysqli
  3. 如何在php中测量mysql时间,sql查询的时间
  4. 【错误】:MySql Host is blocked because
  5. MariaDB 和 MySQL 全面对比:选择数据库需
  6. mysql管理之安全机制
  7. 在社交新闻网站上处理上/下投票
  8. MySQL高可用性之Keepalived+Mysql
  9. mysql 服务意外停止1067错误解决办法小结
  10. 如何在PhpMyAdmin中列出/查看存储过程