Android SharedPreferences用法及注意点详解
阅读原文时间:2021年04月20日阅读:1

Android中的SharedPreferences

1.简介

SharedPreferences,Android中一种应用程序内部轻量级的存储方式,存取快且简单,数据以键值对的形式存储,键为String型,值多为基本数据类型,比如boolean,int,float,long,String等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。使用SharedPreferences保存数据,其实质是采用了xml文件存放数据。
最常用于应用程序的配置信息存储,也可用于应用程序间的数据共享。

2.使用方式

  • 存数据
    1 .获取SharedPreferences对象,三种方式:
    调用Context对象的getSharedPreferences()方法,
    SharedPreferences pre = Context.getSharedPreferences(String name,int mode);
    调用Activity对象的getPreferences()方法,
    SharedPreferences pre = Activity.getPreferences(int mode);
    调用应用默认的preference文件,
    SharedPreferences pre =
    PreferenceManager.getDefaultSharedPreferences(Context)。
    前两种方式的区别:
    调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享。
    调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用。

    2.获取Editor对象,即写入器,使用SharedPreferences对象的edit()方法。

    3.使用写入器的putXxx()方法存储键值对。如:putString(),putInt()。

    4.使用写入器的commit()方法保存键值对(相当于数据库事务中的提交commit操作)。

  • 取数据
    1.打开指定名称的配置文件,即获取SharedPreferences对象。
    方法同上。

    2.使用SharedPreferences对象的getXxx()方法由键名取数据。如:getString(),getInt()。

3.代码示例:

  • 存数据

    SharedPreferences user=getSharedPreferences("user",Context.MODE_PRIVATE);
    Editor editor=user.edit();
    editor.putString("user_name", "Jack");
    editor.putInt("user_age", 22);
    editor.commit();

  • 取数据

    SharedPreferences user=getSharedPreferences("user", Context.MODE_PRIVATE);
    String name=preferences.getString("user_name", "null");
    int age=preferences.getInt("user_age", 0);

4.其他

  • 方法getSharedPreferences(String name,int mode):
    name:文件名。Android 已默认SharedPreferences 以xml形式保存,所以在填写name参数时,不可加“.xml”后缀,只要直接写上文件名即可。
    mode:操作模式。默认的模式为0或MODE_PRIVATE。SharedPreferences共四种操作模式:
    Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容。
    Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
    Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。
    Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
    后两种用于控制其他应用是否有权限读写该文件。

  • 创建的配置文件存放位置可以在Eclipse中查看:
    DDMS — File Explorer — data/data//shared_prefs/user.xml

  • 未解决:
    暂无。