volley的优点是,可以比较好的处理,多次发起小数据量的请求,而且,volley框架,已经直接实现了基于存储卡的一级缓存。
1,创建请求队列:
public static RequestQueue newRequestQueue(Context context) {
return Volley.newRequestQueue(context);
}
通过这个简单的封装就把请求队列的创建的总出口,从volley的框架,挪移到了自己的封装中,就是说,以后如果想修改这个创建请求队列,直接修改这里就可以了,不用繁琐的去先去寻找每一个发起网络请求的地方,然后,逐一修改请求队列的创建。这是一种思想,
2,对于图片的缓存处理。
使用:
com.android.volley.toolbox.ImageLoader
ImageLoader imageLoader=new ImageLoader(requestQueue, new LruImageCache());
android.support.v4.util.LruCache<String, Bitmap>
com.android.volley.toolbox.ImageLoader.ImageCache
/**
* 基于{@link LruCache}的图片缓存实现。volley已经实现了基于存储卡的一级缓存。
*
* @author
* @date
*/
public class LruImageCache extends LruCache<String, Bitmap> implements ImageCache {
/**
* 使用系统最大内存({@link Runtime.getRuntime().maxMemory()})的1/16做缓存。
*/
public LruImageCache() {
// 获取系统分配给每个应用程序的最大内存,右移4位等于除以16
this((int) Runtime.getRuntime().maxMemory() >> 3);
}
public LruImageCache(int maxSize) {
super(maxSize);
}
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight();
}
@Override
public Bitmap getBitmap(String url) {
return get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
put(url, bitmap);
}
}