AndroidSharedPreferences教程:数据存储

1 下载量 61 浏览量 更新于2024-08-29 收藏 101KB PDF 举报
"在Android开发中,使用SharedPreferences进行数据存储是一种常见的做法。SharedPreferences是一个轻量级的存储机制,非常适合用来保存应用程序的配置参数。与Windows软件中的ini文件或Java应用中的properties、xml文件不同,Android提供了SharedPreferences类来方便开发者进行数据持久化。通过SharedPreferences,数据会被存储到XML文件中,位于应用的私有目录/data/data/<包名>/shared_prefs下。 使用SharedPreferences进行数据操作主要涉及以下几个步骤: 1. 获取SharedPreferences实例:通过调用`getSharedPreferences(String name, int mode)`方法,其中`name`参数是文件的名称,不包括.xml后缀,系统会自动加上。`mode`参数定义了文件的访问权限,通常使用`Context.MODE_PRIVATE`,表示只有本应用能访问。如果需要其他应用也能读写,可以使用`Context.MODE_WORLD_READABLE`和`Context.MODE_WORLD_WRITEABLE`。 2. 获取Editor对象:通过调用SharedPreferences实例的`edit()`方法,得到一个Editor对象,用于对数据进行修改。 3. 插入或修改数据:使用Editor对象的方法,如`putString(String key, String value)`来保存字符串,`putInt(String key, int value)`来保存整型值等。 4. 提交修改:调用Editor对象的`commit()`方法,将所有改动保存到SharedPreferences文件中。如果使用的是AndroidX,推荐使用`apply()`代替`commit()`,因为`apply()`是异步操作,不会阻塞主线程。 示例代码如下: ```java SharedPreferences sharedPreferences = getSharedPreferences("ljq", Context.MODE_PRIVATE); Editor editor = sharedPreferences.edit(); editor.putString("name", "林计钦"); editor.putInt("age", 24); editor.commit(); // 或者使用 editor.apply(); ``` 这会在共享偏好文件中创建一个名为“ljq”的XML文件,内容类似于: ```xml <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="name">林计钦</string> <int name="age" value="24"/> </map> ``` 除了基本的数据类型,SharedPreferences还支持保存布尔值(`putBoolean()`)、浮点数(`putFloat()`)、长整型(`putLong()`)以及集合(`putStringSet()`)。在取出数据时,对应使用`getString()`, `getInt()`, `getBoolean()`, `getFloat()`, `getLong()`以及`getStringSet()`方法。 此外,Activity类还提供了快捷方法`getPreferences(int mode)`,它会使用当前Activity的类名作为文件名来获取SharedPreferences实例,这在处理Activity内的简单设置时非常方便。 SharedPreferences是Android中用于轻量级数据存储的一个实用工具,它的使用简单且高效,能满足大部分应用程序配置参数的保存需求。由于它是基于XML的,所以数据具有良好的可读性,并且可以跨进程共享(根据mode参数设置)。在开发过程中,合理利用SharedPreferences可以有效地管理应用的状态和用户设置。"