使用shareperference實現快取cache功能
阿新 • • 發佈:2019-02-13
使用SharePerference可以實現簡單的快取功能,簡單方便。
關鍵點:
key值:使用url
value: json資料
實現程式碼:
1 自定義封裝類
/* * 封裝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(); } }
2 自定義cache封裝類;
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); } }
3 在得到資料時,儲存cache;
//設定快取
CacheUtils.setCatch(GlobalContants.CATEGORIES_URL, result, mAcitivty);
4 更新資料時,檢查是否有快取:
String cache = CacheUtils.getCatch(GlobalContants.CATEGORIES_URL,mAcitivty); if(!TextUtils.isEmpty(cache))//如果快取存在直接解析資料,無需訪問網路 { parseData(cache); } GetDataFromService();
先載入快取,在更新資料。