赞
踩
SharedPreferences是一种轻量级的数据存储方式,采用键值对的存储方式。
SharedPreferences只能存储少量数据,大量数据不能使用该方式存储,支持存储的数据类型有booleans, floats, ints, longs, and strings。
SharedPreferences存储到一个XML文件中的,路径在/data/data//shared_prefs/下,文件名以及存储后面详细讲述。
要创建存储文件或访问已有数据,首先要获取SharedPreferences才能进行操作。获取SharedPreferences对象有下面两个方式:
(1)getSharedPreferences(String name, int mode) — 通过Context调用该方法获得对象。它有两个参数,第一个name 指定了SharedPreferences存储的文件的文件名,第二个参数mode 指定了操作的模式。这种方式获取的对象创建的文件 可以被整个应用所有组件使用,有指定的文件名。
(2)getPreferences(int mode) — 通过Activity调用获得对象。它只有一个参数mode 指定操作模式。这种方式获取的对象创建的文件 属于Activity,只能在该Activity中使用,且没有指定的文件名,文件名同Activity名字。
两个方式都有一个mode参数,mode具体有4个值,最新的只能使用默认模式 Context.MODE_PRIVATE。
Context.MODE_PRIVATE(0):默认模式,创建的文件只能由 调用的应用程序(或者共享相同用户ID的应用程序)访问。
SharedPreferences添加或更新数据,通过SharedPreferences 获取 SharedPreferences.Editor,操作文件数据,最后通过commit()或apply()提交修改。
public static boolean putString(final Context context, final String key, final String pValue) {
final SharedPreferences.Editor editor = PreUtils.getSharedPreferences(context).edit();
editor.putString(key, pValue);
return editor.commit();
}
apply()立即更改内存中的SharedPreferences对象,但异步地将更新写入磁盘。commit()同步地将数据写入磁盘。commit()是同步的,在主线程调用它应该多注意,因为可能引起阻塞,引起ANR。
commit()有返回值,返回是否成功写入永久性存储种。apply()没有返回值。
public static String getString(final Context context, final String key, final String defaultValue) {
return PreUtils.getSharedPreferences(context).getString(key, defaultValue);
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。