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

先加载缓存,在更新数据。


你可能感兴趣的:(android,项目)