1. 程式人生 > >使用shareperference實現快取cache功能

使用shareperference實現快取cache功能

使用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();
		

先載入快取,在更新資料。