【发布时间】:2014-04-29 20:39:59
【问题描述】:
由于某种原因,我无法使用 volley 检索缓存响应。
这是我的片段:
RequestQueue queue = VolleySingleton.getInstance(getActivity()).getRequestQueue();
JsonObjectRequest JOR = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
if(getActivity()!=null && isVisible()){
try
{
JSONArray posts = (JSONArray) response.getJSONArray("posts");
for(int i=0; i<posts.length();i++){
HashMap<String, String> map = new HashMap<String, String>();
//TAG_TITLE.add(posts.getJSONObject(i).getString("title"));
String title = posts.getJSONObject(i).getString(TAG_TITLE);
Log.d("Checking Title", "title"+TAG_TITLE);
String message = posts.getJSONObject(i).getString(TAG_MESSAGE);
String myevent_img = posts.getJSONObject(i).getString(TAG_IMG);
String sponser = posts.getJSONObject(i).getString(TAG_SPONSER);
String whoinvited = posts.getJSONObject(i).getString(TAG_WHOINVITED);
String location = posts.getJSONObject(i).getString(TAG_LOCATION);
String dresscode = posts.getJSONObject(i).getString(TAG_DRESSCODE);
String time = posts.getJSONObject(i).getString(TAG_TIME);
String endtime = posts.getJSONObject(i).getString(TAG_ENDTIME);
//_list.add(myevent_img);
map.put(TAG_SPONSER, sponser);
map.put(TAG_TITLE, title);
map.put(TAG_LOCATION, location);
map.put(TAG_TIME, time);
map.put(TAG_ENDTIME, endtime);
map.put(TAG_MESSAGE, message);
map.put(TAG_WHOINVITED, whoinvited);
map.put(TAG_DRESSCODE, dresscode);
map.put(TAG_IMG, myevent_img);
Log.d("jobj ", "event_img"+myevent_img);
Log.d("hashmap ", "sponser "+map.get("sponser").toString());
eventList.add(map);
}
}
catch (JSONException e)
{
}
Log.d("getActivity ", "getActivity is not null");
adapter = new LazyAdapter(getActivity(), eventList);
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
}else
{
Log.d("getActivity ", "getActivity IS NULLL!!");
//list.setAdapter(null);
//adapter.notifyDataSetChanged();
}
}}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError Error) {
Toast.makeText(getActivity(), Error.toString(), Toast.LENGTH_LONG).show();
}
});
//queue.add(JOR);
JOR.setShouldCache(true);
Entry entry = queue.getCache().get(url);
if(entry!=null){
Log.d("Cached", "CACHE Is Present!!");
try {
String data = new String(entry.data, "UTF-8"); Toast.LENGTH_LONG).show();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}else{
queue.add(JOR);
}
我正在使用处理缓存的 VolleySingleton。 条目 ALWAYS 似乎为空。我是否缺少任何代码。 我真正想要的只是让列表视图在没有网络连接时从缓存中检索数据。
【问题讨论】:
标签: android caching android-volley