Volley Store App Cache中的每个请求

时间:2014-01-06 11:04:14

标签: java android json caching android-volley

class A {
RequestQueue mRequestQueue ;
public void onCreate(Bundle saveInstance){
mRequestQueue = Volley.newRequestQueue(context);
//Reuqest Call for JsonObject
mRequestQueue.add(new JsonObjectRequest(Method.GET, _filterUri, null, new Listener<JSONObject>() {

            public void onResponse(JSONObject jObj) {
                try { // a little bit code using jObj } catch (Exception e) {
                    e.printStackTrace();
                }   
            }
        }....//and error repsone listener as well.
}

因此,每个Activity都会将RequestQueue与活动上下文一起保存。在RequestQueue命中总是得到一个文件存储我的调用和jsonObject在App Cache中显示如图所示。就像我点击RequestQueue一样,Volley在缓存中存储了一个文件。

enter image description here

  1. 为什么Volley将每个文件存储在缓存中而不删除它?
  2. 根据活动上下文调用RequestQueue我做错了吗?
  3. 我有很多内存消耗这个凌空缓存是吗?
  4. 如何使用排球优化我的http通话?

1 个答案:

答案 0 :(得分:2)

  1. 默认情况下,Volley将根据其HTTP缓存标头缓存收到的每个响应。如果标题&#34;说&#34;缓存,Volley缓存,否则它没有。
  2. 我会在整个应用中使用一个RequestQueue,除非您有充分的理由使用多个。
  3. 我相信Volley缓存默认限制为5mb。我不确定你的意思,但你可以限制缓存大小。 注意这是Volley使用的内部磁盘缓存,而不是您需要提供给ImageLoader的内存缓存。
  4. 我不确定优化http呼叫的意思。
  5. 我想提醒您,Volley是开源的,因此如果您不喜欢默认行为,您可以更改它以更好地满足您的需求。