Android数据储存访问——SharedPreferences简单存储

Android数据存储访问——SharedPreferences简单存储涉及到需要为一些显示设置一个配置文件 在网上看了些资料

Android数据存储访问——SharedPreferences简单存储

涉及到需要为一些显示设置一个配置文件 在网上看了些资料 看了下书 SharedPreferences类似于一个.ini文件 可以完成相应的功能 对此进行了整理 主要参考了某PPT

?

Android数据存储和访问方式

SharedPreferences File SQLite?ContentProvider

?

SharedPreferences是一种轻量级的数据保存方式?采用键值对NVP保存在文件系统中

可用于保存数据以及实现不同应用程序间的数据共享

支持3种访问模式

●MODE_PRIVATE 私有

●MODE_WORLD_READABLE 全局读

●MODE_WORLD_WRITEABLE?全局写

定义访问模式

?

或是含2种方式

定义SharedPreferences名称,与Android系统中保存的文件同名

?

为了可以使用,需要将访问模式名称作为参数残敌,获取到SharedPreferences对象

通过SharedPreferences.Edior类SharedPreferences修改,最后调用Commit()函数保存修改内容

通过调用getSaredPerences()函数,并在第一个参数中指明访问的名称,通过get<Type>()方法获取保存着的键值对

其中第一个参数为NVP的名称,第二个参数为无法获取时的缺省值

?

Android为每个应用程序建立与包同名的目录,保存该程序产生的数据,文件等

SharedPreferences文件保存在/data/data/<packagename>/shared_prefs目录下

SaveSetting被保存为一个xml文件

?

补充Linux

文件权限描述创建者,同组用户,其他用户对文件的操作限制(-rw-rw---之类)

x?可执行?r?可读?w?可写?d?目录?-?普通文件?权限与之前设置的MODE有关

?

?

访问其他应用程序的SharedPreferences需要的3个条件

●访问模式为全局读或全局写

●需要知道共享者的包名和SharedPreferences名称,通过Context获取对象

●需要知道每个数据的名称和数据类型以读取数据

?

Context c=nulltry{c=this.createPackageContext(PREFERENCE_PACKAGE,Context.CONTXT_IGNORE_SECURITY);}catch(NameNotFoundException e){e.printStackTrace();}SharedPreferences sharedPreferences=c.getSharedPreferences(PREFERENCE_NAME,MODE);
??

?