SharedPreferences是一种轻量级的数据存储方式,它存储的内容是以键值对方式存储的,类似于map,但是它只能保存基本的数据类型(booleans, floats, ints, longs, and strings)。SharedPreferences提供的是一种持久化数据保存数据的方式。
得到SharedPreferences对象有两种方法:
1,public abstract
SharedPreferences getSharedPreferences(
String name, int mode)。这种方式根据参数name找到相应Preference file,如果这个这个文件不存在,当你通过SharedPreferences创建Editor对象时(SharedPreferences.edit() ),然后commit,会创建一个文件名为“name”的Preference file。
2,public
SharedPreferences getPreferences(int mode),如果Activity中只有一个Preferences file,那么可以通过这种方式得到。
在一个应用中,对于特定的Preference file,所有的类共享一个SharedPreferences实例,也就是说,在同一个应用中,通过上面的方法1,传入相同的name,那么得到的是同一个SharedPreferences对象;方法2也一样。
下面是一个简单的实例
/**
* 创建并保存数据到Preference
*/
private
void
saveDateBySharedPreference(){
SharedPreferences sharedPreference = getActivity().
getSharedPreferences(
SHARED_PREFERENCE_FILEONE
, Context.
MODE_PRIVATE
);
LOG
.print(
"<-------"
+ sharedPreference.toString());
Editor editor = sharedPreference.edit();
editor.putString(
NAME
,
"July"
);
editor.putInt(
AGE
, 24);
editor.putString(
PROPERTY
,
"passive"
);
editor.commit();
}
/**
* 取得Preference中的内容
*/
private
void
analysisSharedPreference(){
SharedPreferences sharedPreference = getActivity().
getSharedPreferences(
SHARED_PREFERENCE_FILEONE
, Context.
MODE_PRIVATE
);
LOG
.print(
"------->"
+ sharedPreference.toString());
String name = sharedPreference.getString(
NAME
,
"王二"
);
int
age = sharedPreference.getInt(
AGE
, 20);
String property = sharedPreference.getString(
PROPERTY
,
"lazy"
);
mSharedInfo
.setText(name +
", "
+ age +
", "
+ property);
}
|
看看保存的数据,保存在/data/data/<package-name>/shares_prefs。
然后看看两个方法里面的sharedPreference是否相同。