Volley的基本使用介绍
Volley是什么
2013 Google I/O大会发布的Android平台网络通讯库,旨在帮助开发者实现更快捷,简单,健壮的网络通讯。支持网络图片的缓存加载功能。
适用场景:数据量不大,但是通讯频率较高的场景。
官网介绍:https://android.googlesource.com/platform/frameworks/volley
官方教程:http://developer.android.com/training/volley/index.html
Volley提供的功能
1.下载JSON数据,获取图片(异步)
2.网络请求的排序
3.网络请求的优先级处理
4.缓存
5.多级别的取消请求
6.与Activity生命周期联动
Volley使用过程
1.下载Volley源码- >导入- >引用库或打包成jar引用
2.实现一个基本HTTP请求- Stringrequest
3.实现Post请求方式并传递参数
4.请求队列的相关操作:取消,tag设置。
Volley的两个使用方法实例
/**获取JSON数据*/
public void getJSONVolley(){
RequestQueue requestQueue= Volley.newRequestQueue(this);
String JsonUrl="http://www.wwtliu.com/jsondata.html";
JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.GET, JsonUrl, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
System.out.println("response:"+jsonObject);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
System.out.println("Error in the program");
}
});
requestQueue.add(jsonObjectRequest);//添加请求
}
/**获取图片*/
public void loadPictureVolley(){
RequestQueue requestQueue=Volley.newRequestQueue(this);
String imageUrl="http://10.0.0.52/image.png";//图片地址
final LruCache<String,Bitmap> lruCache=new LruCache<String,Bitmap>(20);//缓存
ImageLoader.ImageCache imageCache=new ImageLoader.ImageCache() {
@Override
public Bitmap getBitmap(String s) {
return lruCache.get(s);//返回图片
}
@Override
public void putBitmap(String s, Bitmap bitmap) {
lruCache.put(s,bitmap);//加入图片缓存
}
};
ImageLoader imageLoader=new ImageLoader(requestQueue,imageCache);
ImageLoader.ImageListener imageListener=ImageLoader.getImageListener(iv,
R.mipmap.ic_launcher,R.mipmap.ic_launcher);
imageLoader.get(imageUrl,imageListener);
}