Android数据存储访问方式-SharedPreferences的应用

SharedPreferences
SharedPreferences相当于配置文件,为应用程序提供了首选项.其实就是包含键值对的xml文件.SharedPreference能保存基本类型的数据,如:boolean,float,int,long,string


获得SharedPreferences对象
-getSharedPreferences(String name, int mode):获取指定SharedPreferences对象供使用,通过传入资源id(xml的文件名)来获得.
-getPreferences(int mode):获取一个属于当前Activity的SharedPreferences对像供使用(待研究).无需传入资源id.也可以调用getSharedPreferences(),传入Activity的class name来获得.即在MyActivity下调用getPreferences(0)等同于getSharedPreferences("MyActivity",0)
这里对参数mode讲解下,Context下提供了几种mode,如下所示:
MODE_APPEND:如果目标文件已经存在,则会在文件尾添加内容.而不会先清除内容
MODE_MULTI_PROCESS:当目标文件能被多个应用程序访问时,最会检查目标文件是否正被修改中
MODE_PRIVATE:表示目标文件是私有的,只有本应用程序才能访问,如果文件相同会进行覆盖
MODE_WORLD_READABLE:表示允许其他应用程序读目标文件
MODE_WORLD_WRITEABLE:表示允许其他应用程序写目标文件


读写数据
SharedPreferences类提供了各种读取数据的方法(getXXX())
如果要写入数据的话需要使用SharedPreferences.Editor对象
通过调用SharedPreferences.edit()获得SharedPreferences.Editor对象
然后调用Editor对象的相应方法来读写数据(putXXX()),最后需要commit()一下
下面是一例子片段:
//SharedPreferences setting = getPreferences(0);//会直接以当前Activity的class name创建xml文件
SharedPreferences setting = getSharedPreferences("myPreference", 0);//参数1是文件名
String name = setting .getString("name","")//参数2是默认值
SharedPreferences.Editor editor = setting.edit();
editor.putString("name", "Jack");
editor.commit();//提交修改
运行后会在/data/data/com.****/shared_prefs目录下创建myPreference.xml(代码里设置的),文件内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">Jack</string>
</map>

猜你喜欢

转载自kenshenchan.iteye.com/blog/1684868