Chinaunix首页 | 论坛 | 博客
  • 博客访问: 269043
  • 博文数量: 138
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 971
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-03 10:05
文章分类

全部博文(138)

文章存档

2016年(1)

2015年(137)

我的朋友

分类: Android平台

2015-07-09 17:16:28

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的意思是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。

阅读(973) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~