如何使用Volley库从JSON数据缓存?

时间:2016-01-26 08:13:29

标签: android json android-volley

这是我的JSON代码。我想第一次从URL缓存JSON数据,第二次它将在没有internet的情况下工作。如何使用凌空缓存工具,以及如何访问保存的文件?

StringRequest stringRequest = new StringRequest(Request.Method.GET, Constants.URL_CONTACTS, new Response.Listener<String>() {
            @Override
            public void onResponse(final String response) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try{
                            JSONObject jsonObject = new JSONObject(response);
                            if(jsonObject.has(Constants.TAG_EXAM)) {
              JSONArray examArray = jsonObject.getJSONArray(Constants.TAG_EXAM);
                                for(int i = 0; i < examArray.length(); i++) {
                                    // get all array from JSON object
                                   JSONObject seat = examArray.getJSONObject(i);
   }
                            }
                            handler.sendEmptyMessage(1);
                        } catch (JSONException e) {
                            handler.sendEmptyMessage(2);
                            e.printStackTrace();
                        } catch (NullPointerException e) {
                            handler.sendEmptyMessage(3);
                            e.printStackTrace();
                        }
                    }
                }).start();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }``
        })`

2 个答案:

答案 0 :(得分:1)

Volley没有提供这样的缓存工具来缓存json,你可以使用mapLruCache创建自己的缓存工具来制作它。因为你的json很少并且使用的内存很小,你可以使用地图来保存它,在我看来这将是最简单的方法。

答案 1 :(得分:0)

您可以使用SharedPreferences缓存排球的响应,因为它是一个字符串。