涉及到需要为一些显示设置一个配置文件 在网上看了些资料 看了下书 SharedPreferences类似于一个.ini文件 可以完成相应的功能 对此进行了整理 主要参考了某PPT
Android数据存储和访问方式
SharedPreferences File SQLite ContentProvider
SharedPreferences是一种轻量级的数据保存方式 采用键值对NVP保存在文件系统中
可用于保存数据以及实现不同应用程序间的数据共享
支持3种访问模式
●MODE_PRIVATE 私有
●MODE_WORLD_READABLE 全局读
●MODE_WORLD_WRITEABLE 全局写
定义访问模式:
public static int MODE = MODE_PRIVATE;
或是含2种方式
public static int MODE = Context.MODE_WORLD_READALBE + Context.MODE_WORLD_WRITEABLE;
定义SharedPreferences名称,与Android系统中保存的文件同名
public static final String PREFERECE_NAME="SaveSetting";
为了可以使用,需要将访问模式和名称作为参数残敌,获取到SharedPreferences对象
SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME,MODE);
通过SharedPreferences.Edior类对SharedPreferences修改,最后调用Commit()函数保存修改内容
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString("Name","Tom");
editor.putInt("Age",20);
editor.putFloat("Height",);
editor.commit();
通过调用getSaredPerences()函数,并在第一个参数中指明访问的名称,通过get<Type>()方法获取保存着的键值对
SharedPreferences sharedPreferences=getSharedPreferences(PREFERENCE_NAME,MODE);
String name=sharedPreferences.getString("Name","Default Name");
int age=sharedPreferences.getInt("Age",20);
float height=sharedPreferences.getFloat("Height",);
其中第一个参数为NVP的名称,第二个参数为无法获取时的缺省值
Android为每个应用程序建立与包同名的目录,保存该程序产生的数据,文件等
SharedPreferences文件保存在/data/data/<packagename>/shared_prefs目录下
SaveSetting被保存为一个xml文件
补充Linux:
文件权限描述创建者,同组用户,其他用户对文件的操作限制(-rw-rw---之类)
x 可执行 r 可读 w 可写 d 目录 - 普通文件 权限与之前设置的MODE有关
访问其他应用程序的SharedPreferences需要的3个条件:
●访问模式为全局读或全局写
●需要知道共享者的包名和SharedPreferences名称,通过Context获取对象
●需要知道每个数据的名称和数据类型以读取数据
Context c=null
try{
c=this.createPackageContext(PREFERENCE_PACKAGE,Context.CONTXT_IGNORE_SECURITY);
}catch(NameNotFoundException e){
e.printStackTrace();
}
SharedPreferences sharedPreferences=c.getSharedPreferences(PREFERENCE_NAME,MODE);