Pro*_*bio 28 android caching android-volley
有没有办法可以禁用Volley缓存管理?我的应用程序使用Google Volley库来管理传输层,但我有自己的缓存管理器实现,因为服务器不使用Cache-Control标头.我想节省Volley缓存正在使用的空间,因为它完全没用.
有什么简单的方法吗?或者我应该实现自己的版本RequestQueue?
任何建议表示赞赏.
Hun*_*der 71
如果您使用volley中实现的任何默认Request类(例如StringRequest,JsonRequest等),则在将请求对象添加到排序 RequestQueue之前调用setShouldCache(false):
request.setShouldCache(false);
myQueue.add(request);
Run Code Online (Sandbox Code Playgroud)
如果您有自己的Request类实现,那么可以在类的构造函数中调用setShouldCache(false).
此解决方案单独禁用每个请求的缓存.如果要从排球库中全局禁用缓存,可以在Request类中将mShouldCache变量永久设置为false.
Ano*_*nor 12
您可以从构造函数创建RequestQueue,并将NoCache对象作为第一个参数传递.第二个参数是基于您选择的AndroidHttpClient或者的网络传输HttpURLConnection.
RequestQueue queue = new RequestQueue(new NoCache(), new BasicNetwork(new HurlStack()));
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此文档.
根据文档,BasicNetwork是Volley的默认网络实现.
request.setShouldCache(false);
Run Code Online (Sandbox Code Playgroud)
对于GET请求似乎不够.但是,在添加到队列之前清除缓存似乎有所帮助
myRequestQueue.getCache().clear();
Run Code Online (Sandbox Code Playgroud)
我把它放在getRequestQueue()我的Volley单身人士的方法中.在返回队列之前.
| 归档时间: |
|
| 查看次数: |
17524 次 |
| 最近记录: |