2016-05-01 22 views
1

我遇到了排球緩存問題。有什麼辦法可以在一分鐘後刪除緩存並使其請求新數據?如何使排球緩存在1分鐘內過期

我的代碼

JsonObjectRequest jsObjRequest = new JsonObjectRequest 
        (Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 

    @Override 
    public void onResponse(JSONObject response) { 
        mTxtDisplay.setText("Response: " + response.toString()); 
    } 
}, new Response.ErrorListener() { 

    @Override 
    public void onErrorResponse(VolleyError error) { 
        // TODO Auto-generated method stub 

    } 
}); 
+0

你跟凌空遇到了什麼問題緩存? – CaptJak

+0

它緩存項目很長一段時間,它拒絕提取新項目。 – Roseyk

+0

你有錯誤嗎?我只問,因爲也許這是應該解決的問題。 – CaptJak

回答

2

,你可以這樣做:

JsonObjectRequest jsObjRequest = new JsonObjectRequest 
     (Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 

    @Override 
    public void onResponse(JSONObject response) { 
     mTxtDisplay.setText("Response: " + response.toString()); 
    } 
}, new Response.ErrorListener() { 

    @Override 
    public void onErrorResponse(VolleyError error) { 
     // TODO Auto-generated method stub 

    } 
}){ 
@Override 
    protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { 
     Response<JSONObject> resp = super.parseNetworkResponse(response); 
     if(!resp.isSuccess()) { 
      return resp; 
     } 
     long now = System.currentTimeMillis(); 
     Cache.Entry entry = resp.cacheEntry; 
     if(entry == null) { 
      entry = new Cache.Entry(); 
      entry.data = response.data; 
      entry.responseHeaders = response.headers; 
     } 
     entry.ttl = now + 60 * 1000; //keeps cache for 1 min 

     return Response.success(resp.result, entry); 
    } 
}; 

這將讓你緩存請求始終只有1分鐘

+0

嗨,我使用凌空設置列表我的recyclerview和設置分頁的LoadMoreItems()當我啓用緩存,onLoadMore項目用於返回追加已加載的項目在現有列表的末尾,我通過使用Global.getInstance ().shared()getRequestQueue()getCache()除去(URL)。。。;但是當我重新啓動應用程序時,由於適配器list.size被返回null而導致應用程序崩潰,如何在刪除緩存後創建新的請求?請幫忙 –