Android SharedPreferences 私有数据存储教程

需积分: 10 1 下载量 148 浏览量 更新于2024-08-24 收藏 368KB PPT 举报
"这篇资料主要介绍了Android开发中的首选项信息私有数据存储,特别是如何使用SharedPreferences进行数据存储。" 在Android应用开发中,SharedPreferences是用于存储轻量级、非敏感的私有数据的一个重要工具。它提供了一种简单的方式来保存和读取基本数据类型的数据,如布尔值、整数、浮点数、长整数和字符串。首选项信息通常用于保存用户设置或应用的状态,而不会占用大量存储空间。 `SharedPreferences`的获取可以通过`Context`类提供的两个方法: 1. `getSharedPreferences(String name, int mode)` 这个方法需要两个参数:`name`参数是一个字符串,用来指定SharedPreferences文件的名称。如果文件不存在,系统会自动创建。默认情况下,文件存储在`/data/data/<包名>/shared_prefs/`目录下,文件名为`<name>.xml`。`mode`参数定义了文件的访问权限,例如`MODE_PRIVATE`(默认)表示只有本应用能访问,`MODE_WORLD_READABLE`和`MODE_WORLD_WRITEABLE`分别允许其他应用读写。 2. `getPreferences(int mode)` 这是另一个获取SharedPreferences的方法,它会使用应用的主SharedPreferences文件(基于类名),不需要指定文件名。 一旦获取到`SharedPreferences`实例,我们就可以通过`Editor`来修改和保存数据。`SharedPreferences.Editor`提供了如下操作: - `putBoolean(String key, boolean value)`:添加或更新布尔值。 - `putInt(String key, int value)`:添加或更新整数值。 - `putLong(String key, long value)`:添加或更新长整数值。 - `putFloat(String key, float value)`:添加或更新浮点数值。 - `putString(String key, String value)`:添加或更新字符串值。 - `putStringSet(String key, Set<String> values)`:添加或更新字符串集合。 在进行修改后,必须调用`commit()`或`apply()`方法来保存更改。`commit()`是同步操作,会立即返回是否保存成功的布尔值;而`apply()`是异步的,不返回任何值,但保证最终会保存数据。通常推荐使用`apply()`,因为它更高效。 以下是一个简单的使用示例: ```java SharedPreferences sp = getSharedPreferences("myShare", MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putBoolean("key1", true); editor.putInt("key2", 1234); editor.apply(); // 或者 editor.commit(); ``` 为了读取保存的数据,可以使用`SharedPreferences`的`getString()`, `getInt()`, `getBoolean()`等方法,配合对应的键值: ```java boolean isTrue = sp.getBoolean("key1", false); // 默认值为false int number = sp.getInt("key2", -1); // 如果找不到key2,返回-1 ``` 总结来说,SharedPreferences是Android中一种简单且有效的存储小型数据的方式,适用于存储应用配置、用户设置等信息。它的使用涉及获取实例、编辑数据以及读取数据三个主要步骤,并提供了多种数据类型的存取支持。