2014-12-23 99 views
2

我使用volley框架從服務器檢索json響應,但每次從服務器加載json。我如何緩存這個json響應,以便在離線狀態下使用它並與新響應同步。以下是我的代碼來從服務器檢索JSON響應緩存json響應使用凌空

  // Creating volley request obj 
     JsonArrayRequest Req = new JsonArrayRequest(url, 
       new Response.Listener<JSONArray>() { 
        @Override 
        public void onResponse(JSONArray response) { 
         Log.d(TAG, response.toString()); 
         // Parsing json 
         for (int i = 0; i < response.length(); i++) { 
          try {  
           JSONObject obj = response.getJSONObject(i); 
           MainPojo test = new MainPojo(); 
           String name = obj.getString("facility_name");         
           test.setName(name);         
           //test.setUrl(obj.getString("easyurl"));         
           testList.add(test); 

          } catch (JSONException e) { 
           e.printStackTrace(); 
          }  
         }  
         // notifying list adapter about data changes 
         // so that it renders the list view with updated data 
         mAdapter.notifyDataSetChanged(); 
        } 
       }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         VolleyLog.d(TAG, "Error: " + error.getMessage());      

        } 
       }) 
       {    
      //** 
      // Passing some request headers 
       //* 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       HashMap<String, String> headers = new HashMap<String, String>(); 
       headers.put("Cookie", MainActivity.sharedpreferences.getString(savedCookie, ""));     
       headers.put("Set-Cookie", MainActivity.sharedpreferences.getString(savedCookie, "")); 
       headers.put("Content-Type", "application/x-www-form-urlencoded");     
       //headers.put("Content-Type","application/json"); 
       headers.put("Accept", "application/x-www-form-urlencoded");     
       return headers; 
      } 
     }; 
     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(Req); 
    } 

請讓我知道我應該做的緩存JSON響應

+0

我認爲我的解決方案不好,因爲它可能會阻止排球在需要時得到更新,試一試,看看它是否自動更新,您可以添加標題以查看排球何時需要更新 – mmlooloo

+0

標題已添加,唯一的問題是緩存響應並且只有在服務器可用更新時才進行同步 – ABI

回答

0

也許我失去了一些東西,但嘗試使用共享偏好什麼