1.sharedPreferences介绍
很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数,保存的数据主要是简单类型的键值对(key-value)。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs。
sharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name,int mode)方法来获取SharedPreferences实例。该方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式。
由于SharedPreference是一个接口,而且在这个接口里并没有提供写入数据的能力。但是在其内部有一个名为SharedPreferences.Editor的内部接口,Editor这个接口有一系列的方法用于操作SharedPreference,而SharedPreferences调用edit()方法即可获取它所对应的Editor对象。
SharedPreferences读数据:
boolean contain(String key);
abstract Map<String,?> getAll();
boolean getXXX(String key,xxx defValue);
SharedPreferences.Editor写数据
SharedPreferences.Editor clear();
SharedPreferences.Editor putXXX(String key,XXX value); 向SharedPreferences存入key对应的数据,是value类型
SharedPreferences.Editor remove(String key);
boolean commit();编辑完成后调用该方法提交修改
2 读写其他应用SharedPreferences
Context有个createPackageContext方法,可以创建另外一个包的上下文,这个实例不同于它本身的Context实例,但是功能是一样的。
这个方法有两个参数:
1.)packageName 包名,要得到Context的包名
2.)flags 标志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。
CONTEXT_INCLUDE_CODE的意思是包括代码,也就是说可以执行这个包里面的代码。
CONTEXT_IGNORE_SECURITY的意思是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。
阅读(1008) | 评论(0) | 转发(0) |