Android网络框架Volley

Volley是Google I/O 2013推出的网络通信库,在volley推出之前我们一般会选择比较成熟的第三方网络通信库,如:

他们各有优劣,之前个人则比较喜欢用android-async-http, 如今Google推出了官方的针对Android平台上的网络通信库,能使网络通信更快,更简单,更健壮,Volley在提供了高性能网络通讯功能的同时,对网络图片加载也提供了良好的支持,完全可以满足简单REST客户端的需求, 我们没有理由不跟上时代的潮流

使用Volley

下载Volley源码并build jar包。

$ git clone https://android.googlesource.com/platform/frameworks/volley$ cd volley$ android update project -p$ ant jar

然后把生成的jar包引用到我们的项目中,extras目录下则包含了目前最新的volley源码。

说明

此Demo主要介绍了日常网络开发常用的基本功能,但volley的扩展性很强,可以根据需要定制你自己的网络请求。

volley视频地址:?v=yhv8l9F44qo&feature=player_embedded

以上是在Google IO的演讲上ppt的配图,从上面这张图我们可以看出,volley适合快速,简单的请求(Json对象,图片加载)。

volley的特性:

JSON,图像等的异步下载;

网络请求的排序(scheduling)

网络请求的优先级处理

缓存

多级别取消请求

和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)

接下来,我们来学习简单的使用下volley给我提供的API吧。

1.首先拿到一个请求队列(RequestQueue只需要一个实例即可,不像AsyncTask每次使用都要new一个)

[java]

//初始化RequestQueue一个activity只需要一个

privatevoidinitRequestQueue(){

mQueue=Volley.newRequestQueue(getApplicationContext());

}

2.实现volley的异步请求类(JsonObjectRequest,JsonArrayRequest,StringRequest,ImageRequest)

由于用法都相差不大,我就不一一举例了,举几个常用有代表性的例子:

以下代码是StringRequest的get请求:

[java]

//get请求

[java]

privatevoidloadGetStr(Stringurl){

StringRequestsrReq=newStringRequest(Request.Method.GET,url,

newStrListener(),newStrErrListener()){

protectedfinalStringTYPE_UTF8_CHARSET="charset=UTF-8";

//重写parseNetworkResponse方法改变返回头参数解决乱码问题

//主要是看服务器编码,如果服务器编码不是UTF-8的话那么就需要自己转换,反之则不需要

@Override

protectedResponse<String>parseNetworkResponse(

NetworkResponseresponse){

try{

Stringtype=response.headers.get(HTTP.CONTENT_TYPE);

if(type==null){

type=TYPE_UTF8_CHARSET;

response.headers.put(HTTP.CONTENT_TYPE,type);

每天告诉自己一次,『我真的很不错』

Android网络框架Volley

相关文章:

你感兴趣的文章:

标签云: