使用SharePerference可以实现简单的缓存功能,简单方便。
key值:使用url
value: json数据
实现代码:
/* * 封装sharePreferences */ public class PreferenceUtils { public final static String PREF_NAME="config"; public static String getString(Context ctx,String key,String defaultValue) { SharedPreferences sp=ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); return sp.getString(key, defaultValue); } public static void SetString(Context ctx,String key,String defaultValue) { SharedPreferences sp=ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); sp.edit().putString(key, defaultValue).commit(); } }
public class CacheUtils { /* * 设置缓存,key是url, value是json */ public static void setCatch(String key,String value,Context ctx) { PreferenceUtils.SetString(ctx, key, value); } /* * 获取缓存,key是url */ public static String getCatch(String key,Context ctx) { return PreferenceUtils.getString(ctx, key,null); } }
//设置缓存 CacheUtils.setCatch(GlobalContants.CATEGORIES_URL, result, mAcitivty);
String cache = CacheUtils.getCatch(GlobalContants.CATEGORIES_URL,mAcitivty); if(!TextUtils.isEmpty(cache))//如果缓存存在直接解析数据,无需访问网络 { parseData(cache); } GetDataFromService();