Android的数据存储之SharedPreferences

来源:互联网 发布:全国地区信息 数据库 编辑:程序博客网 时间:2024/05/06 00:18

所有的应用程序都必然涉及到数据的输入、输出、android应用也不例外,应用程序的参数设置、运行状态数据只有保存到外部存储器上,系统在关机之后数据不会丢失。

在Android中一共提供了四种数据存储的方式,但是由于存储的这些数据都是其应用程序的私有数据,所以如果需要在其他应用程序中使用这些数据,就要使用Android提供的ContentProviders

 Android提供的五种数据存储方式如下:

   SharedPreferences:它是一个轻量级的键值(Key-Values)存储机制,只可以存储基本数据类型,主要是针对系统配置信息的保存

   Files:Android使用的是基于Linux的文件系统,程序开发人员可以建立和访问程序自身的私有文件,也可以访问保存在资源目录中的原始文件和XML文件,还可以在SD卡等外部存储设置中保存文件

   SQLine:Android提供的标准数据,支持SQL语句,可以用来存储大量的数据

   ContentProvider:主要用于在应用程序间的数据共享和交换。

    NetWork:通过网络存储和获得数据

本博客主要讲解SharedPreferences的详细用法

   SharedPreferences是Android平台一个轻量级的存储类,是基于XML文件来存储Key-Values键值对数据,通常用来存储一些简单的配置信息,其存储位置在/data/data/<包名>/shared_prefs目录下。主要是保存一些常用的配置,如窗口状态,一般在Activity中重载窗口状态onSavelnstance State保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整型,int整形,String字符串型的保存。

   SharedPreferences是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context.getSharedPreferences(String name,int mode)方法来获取SharedPreferences实例该方法的第一个参数指定XML文件的名字,第二个参数支持如下几个值。

         Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读写。、

         Context.MODE_WORLD_READABLE指定该SharedPreferences数据能被其他应用程序读

         Context.MODE_WORLD_WRITEABLE指定该SharedPreferences数据能被其他应用程序写

在Activity中提供了如下方法可以创建一个SharedPreferences,默认名为当前的activity的类名

          public SharedPreferences getSharedPreferences(int mode){};

也可以使用PreferenceManager中提供的gatDeferenceSharedPreferences来创建一个SharedPreferences 默认为项目的包名其实底层也是调用了getSharedPreferences(String name,int mode)来创建的SharedPreferences

        public static SharedPreferences getDeferenceSharedPreferences(Context context){};

SharedPreferences接口主要负责读取应用程序的Preferences数据,它提供了如下常用的方法来访问SharedPreferences中的Key-Values

      boolean conteins(String Key)来判断SharedPreferences是否包含Key的数据

      Map<String,?> getAll();获取SharedPreferences中全部的key-values

     xxx getXxx(String key,xxx defValues);获取SharedPreferences中指定key的values,如果该key不存在,返回默认值defValue。其中xxx可以是boolean,float,int,long,String

     SharedPreferences.Editoredit();返回一个Editor用于操作SharedPreferences。

      SharedPreferences对象的本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。Editor提供了如下方法向SharedPreferences写入数据

实现SharedPreferences存储的步骤

1 根据Context获取SharedPreferences对象

2  利用edit()方法获取Editor对象

3  通过Editor对象存储key-values键值对数据

4  通过commit()方法提交数据

SharedPreferences sp = getContext.getSharedPreferences("Demo",Context.MODE_PRIVATE);

Editor editor  =sp.edit();

editor.putString("name","张三");

editor.putBoolent("married",true);

editor.commit();




 


0 0
原创粉丝点击