特点:
1.json,图片等的异步下载。
2.网络请求排序。
3.网络请求的优先处理。
4.缓存。
5.多级别取消请求。
6.和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)。
注意一点,Volley适合在数据量不大但通信频繁的场景中,大数据之类的就不大适合了。
一般的使用步骤:
1.新建请求队列实例。
//context
RequestQueue reQueue = Volley.newRequestQueue(this);
2.定义请求类型,如StringRequest,JsonRequest,ImageRequest之类的。
//字符串请求
StringRequest sRe=new StringRequest(method, url, listener, errorListener);
3.将定义的请求添加到请求队列中。
//添加请求
reQueue.add(sRe);
实例如下:
RequestQueue reQueue = Volley.newRequestQueue(this);
StringRequest sRe = new StringRequest(
"http://m.weather.com.cn/data/101110101.html",
new Response.Listener<String>() {
public void onResponse(String arg0) {
// TODO Auto-generated method stub
Log.d(Tag, arg0);
}
}, new Response.ErrorListener() {
public void onErrorResponse(VolleyError arg0) {
// TODO Auto-generated method stub
}
});
reQueue.add(sRe);
JsonObjectRequest jsRe = new JsonObjectRequest(
"http://m.weather.com.cn/data/101110101.html", null,
new Response.Listener<JSONObject>() {
public void onResponse(JSONObject arg0) {
// TODO Auto-generated method stub
Log.d(Tag, arg0.toString());
}
}, new Response.ErrorListener() {
public void onErrorResponse(VolleyError arg0) {
// TODO Auto-generated method stub
}
});
reQueue.add(jsRe);
ImageRequest imRe = new ImageRequest(
"http://h.hiphotos.baidu.com/image/w%3D310/sign=a244f576f0deb48ffb69a7dfc01e3aef/d0c8a786c9177f3e38b7931a73cf3bc79f3d5621.jpg",
new Response.Listener<Bitmap>() {
public void onResponse(Bitmap arg0) {
// TODO Auto-generated method stub
p.setImageBitmap(arg0);
}
}, 120, 120, Config.RGB_565, new Response.ErrorListener() {
public void onErrorResponse(VolleyError arg0) {
// TODO Auto-generated method stub
}
});
reQueue.add(imRe);