关于 Android Volley框架缓存
众所周知Volley框架可以帮助开发者访问网络数据,并对数据进行缓存
创建RequestQueue时设置缓存路径
// 缓存 (这使用的是磁盘缓存) Cache cache=new DiskBasedCache(context.getCacheDir(),1024*1024*10); // 网络栈 http数据通信的具体实现 Network network=new BasicNetwork(new HurlStack()); //创建并启动请求队列 requestQueue=new RequestQueue(cache,network);
Volley会将数据保存到磁盘缓存中
但有时下次访问同样的地址时不会读缓存因为这与服务器传过来的头文件有关
头文件会申明缓存记录的生命周期当过了申明周期就不会读缓存
若头文件没有申明生命周期,则Volley就不会读取缓存,这时候就要我们手动的读取Volley存放在磁盘中的缓存了
if(!isNetworkAvailable(context)){ getFromDiskCache(url); //如果没网,则调取缓存数据‘ if (requestQueue.getCache().get(commentUrl) != null) { //通过url的到缓存的数据 byte[] data = requestQueue.getCache().get(commentUrl).data; } }else{ //有网则从网上更新数据 //……(省略) } }
判断网络是否可用
public static boolean isNetworkAvailable(Context context) { try { ConnectivityManager manger = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = manger.getActiveNetworkInfo(); //return (info!=null && info.isConnected()); if(info != null){ return info.isConnected(); }else{ return false; } } catch (Exception e) { return false; } }
相关推荐
lolafon 2015-04-18
狂草 2015-12-31
俊光 2018-08-10
scuzoutao 2015-04-02
Garment 2019-06-21
OliverLau 2019-06-21
SnailDream 2019-06-21
newtrekWang 2019-06-20
scuzoutao 2019-06-20
狂草 2019-06-20
doomvsjing 2019-06-11
hh000 2017-04-10
scuzoutao 2017-03-30
狂草 2016-09-12
JewelCCL 2016-08-10
Garment 2016-08-10
magic00 2016-08-10
scuzoutao 2016-05-10
SnailDream 2016-03-21