Android偏好缓存SharedPreferences存储数据用法
2015-04-28 12:51:44  By: dwtedx

很久多时候我们都会保存软件的配置文件和用户的偏好设置、由于其配置信息并不多、如果采用数据库来存放并不划算、因为数据库连接跟操作等耗时大大影响了程序的效率、因此使用键值对的方式来存放这些配置信息、SharedPreferences正是Android中用于实现这中存储方式的技术


SharedPreferences的使用非常简单、能够轻松的存放数据和读取数据、SharedPreferences只能保存简单类型的数据、例如、String、int等、一般会将复杂类型的数据转换成Base64编码、然后将转换后的数据以字符串的形式保存在 XML文件中、再用SharedPreferences保存


使用SharedPreferences保存key-value对的步骤如下

1、使用Activity类的getSharedPreferences方法获得SharedPreferences对象、其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定

2、使用SharedPreferences接口的edit获得SharedPreferences.Editor对象

3、通过SharedPreferences.Editor接口的putXxx方法保存key-value对、其中Xxx表示不同的数据类型、例如:字符串类型的value需要用putString方法

4、通过SharedPreferences.Editor接口的commit方法保存key-value对、commit方法相当于数据库事务中的提交(commit)操作


具体代码的书写流程如下、以下为个人为是否第一次打开的缓存功能

初始化SharedPreferences

public static void init(Context context) {
	mSettingPreferences = context
		.getSharedPreferences(AUTO11_APPFIRSTOPEN_PREFERENCES,
			Activity.MODE_PRIVATE);
}


释放SharedPreferences

public static void relese() {
	mSettingPreferences = null;
}


清空SharedPreferences

public static void clear() {
	// Retrieve an editor to modify the shared preferences.
	SharedPreferences.Editor editor = mSettingPreferences.edit();
	editor.putString(AUTO11_APPFIRSTOPEN_PREFERENCES, null);
	// Commit changes.
	editor.commit();
}


获取SharedPreferences

@SuppressLint("NewApi")
public static boolean getIsFirstOpen() {
	return mSettingPreferences
		.getBoolean(AUTO11_APPFIRSTOPEN_PREFERENCES, false);
}


设置SharedPreferences

@SuppressLint("NewApi")
public static void setIsFirstOpen(boolean isFirstOpen) {
	// Retrieve an editor to modify the shared preferences.
	SharedPreferences.Editor editor = mSettingPreferences.edit();
	editor.putBoolean(AUTO11_APPFIRSTOPEN_PREFERENCES, isFirstOpen);
	// Commit changes.
	editor.commit();
}


源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1o6r91vs 密码: w8re

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+