Volley的几点使用心得
本文为自己在应用开发过程中使用 Volley的一些心得,至于简介请参考:Android网络通信库Volley简介 by liubin。
一、Request自定义 Http Headers
继承Request
或其子类,实现getHeaders()
方法即可
如:
二、Request附上Cookies
其实与上一条类似,都是自定义 Headers。
这里直接继承上面定义类。
如:
三、强制缓存数据
发现在设置允许缓存request.setShouldCache(true);
后,还是得不到缓存数据。
经追查得知在实现parseNetworkResponse(NetworkResponse response)
方法时,一般都会调用 Volley 提供的HttpHeaderParser
解析Http响应头来是否缓存数据。但一些时候,会想自己来控制缓存。这时就可以如下来实现parseNetworkResponse()
方法:
四、获取缓存的二进制数据
一般的缓存数据的 key 都是Request 的 url,或者是实现request。getKey()
自定义的。
知道了 key 就可以获取到对应的缓存:
Cache.Entry entry = mQueue.getCache().get(key);
1 | public static byte[] getDataInDiskCache(String key){ |
注意:不一定能获取到数据,原因是缓存任务线程还未被执行或者正在执行中!
五、强制刷新数据
在允许缓存后,Volley 会根据缓存的有效期来决定是否重新联网获取数据。
有时会有强制刷新数据的需求,这时就需要把缓存标记为无效:
1 | final Cache.Entry entry = mQueue.getCache().get(url); |