Android数据持久化方法中最简单的一种,即使用Preferences的键值对存储方式。这种方式主要用来存储比较简单的一些数据,而且是标准的Boolean、Int、Float、Long、String等类型。
android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据。
有三种获取系统中保存的持久化数据的方式:
1.this.getPreferences (int mode)
通过Activity对象获取,获取的是本Activity私有的Preference,保存在系统中的xml形式的文件的名称为这个Activity的名字,因此一个Activity只能有一个,属于这个Activity。
2.this.getSharedPreferences (String name, int mode)
因为Activity继承了ContextWrapper,因此也是通过Activity对象获取,但是属于整个应用程序,可以有多个,以第一参数的name为文件名保存在系统中。
3.PreferenceManager.getDefaultSharedPreferences(this);
android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据。
有三种获取系统中保存的持久化数据的方式:
1.this.getPreferences (int mode)
通过Activity对象获取,获取的是本Activity私有的Preference,保存在系统中的xml形式的文件的名称为这个Activity的名字,因此一个Activity只能有一个,属于这个Activity。
2.this.getSharedPreferences (String name, int mode)
因为Activity继承了ContextWrapper,因此也是通过Activity对象获取,但是属于整个应用程序,可以有多个,以第一参数的name为文件名保存在系统中。
3.PreferenceManager.getDefaultSharedPreferences(this);
PreferenceManager的静态函数,保存PreferenceActivity中的设置,属于整个应用程序,但是只有一个,Android会根据包名和PreferenceActivity的布局文件来起一个名字保存。
数据操作模式:
Activity.MODE_PRIVATE,//默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Activity.MODE_APPEND Activity.MODE_WORLD_READABLE,//表示当前文件可以被其他应用读取, Activity.MODE_WORLD_WRITEABLE,//表示当前文件可以被其他应用写入; //如果希望文件被其他应用读和写,可以传入:
Activity.MODE_WORLD_READABLE | Activity.MODE_WORLD_WRITEABLE Activity.MODE_APPEND //该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件