android 通信之volly
一、简介
上图是谷歌2013IO大会上发布volly的示意图。由图片可以看出volly适用于数据量不大而请求频繁的网络需求;
volly提供的功能:
1:JSON、图片(异步)
2:网络请求排序
3:网络请求优先级处理
4:缓存
5:多级别的屈晓请求
6:与activity生命周期联动(activity结束时结束所有网络请求)
二、使用:
volly主页:http://android.googlesource.com/platform/frameworks/volley
1.下载库
2. 导出为JAR
3.导入自己的工程作为库(支持sdk版本8以上的)
获取JASON数据
void getJSONVolley(){
RequestQueue requestQueue = Volley.newRequestQueue(this);
String JSONDateUrl = "http://lll";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
Request.Mothod.GET,JSONDateUrl,
null,
new Response.Listener<JSONObject>(){
pubilc void onRequest(JSONObject response) {}
},
new Request.onErrorResponse(com.android.volley. VolleyError arg0){}});
requestQueue.add(jsonObjectRequest);
requestQueue.start();
}
获取图片资源:
public void LoadImageVolly(){
String imagurl ="http://";
RequestQueue requestQueue = Volly.newRequestQueue(this);
final LruCache<String,Bitmap> lurcache = new LurCache<String,Bitmap>(20);
ImageCache imageCache = new ImageCache(){
@override
public void putBitmap(String key,Bitmap value){ lurcache.put(key,value);
}
@override
public Bitmap getBitmap(String key,Bitmap value){ lurcache.get(key,value);
}
ImageLoader imageLoader = new ImageLoader(requestQueue,imageCache);
ImageLister listener = imageLoader.getImageListener(
imageview,R.drawable.ic_launcher,R.drawable.ic_launcher); imageLoader.get(imageurl,listener);
}}
public void NetworkImageViewVolley(){
String imageurl = "http://XXXXX";
RequestQueue requestQueue = Volley.newRequestQueue(this);
final LruCache<String,Bitmap> lruCache =
new LruCache<String,Bitmap>(20);ImageCache imageCache = new ImageCache(){
@override
public void putBitmap(String key,Bitmap value){
lruCache.put(key,value);
}
@override
public Bitmap getBitmap(String key){
return lruCache.get(key);
}
};
ImageLoader imageLoader = new ImageLoader(requestQueue,imageCache);
imageview.setImageUrl(imageUrl,imageLoader)
}
Volley应该是简化了网络通信的一些开发,特别是针对如下两种情况:
- JSON对象
- 图片加载
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。