2024年3月13日发(作者:)

SharedPreferences 的作用和概念

在 Android 开发中,SharedPreferences 是一种轻量级的存储方式,用于保存应

用程序的配置数据。它可以存储简单的键值对,并且可以跨进程共享数据。

SharedPreferences 使用起来非常方便,可以用来保存用户的偏好设置、登录状态、

主题选择等信息。

SharedPreferences 的使用

1. 创建 SharedPreferences 对象

在使用 SharedPreferences 之前,首先需要获取一个 SharedPreferences 对象,

可以通过以下两种方式进行创建:

1.1 使用 Context 的 getSharedPreferences() 方法

SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", C

_PRIVATE);

这里的第一个参数 “my_preferences” 是 SharedPreferences 的文件名,用于

标识不同的 SharedPreferences 文件。第二个参数是访问模式,这里使用

MODE_PRIVATE 表示只有当前应用程序可以访问。

1.2 使用 PreferenceManager 的 getDefaultSharedPreferences() 方法

SharedPreferences sharedPreferences = aultSharedPrefer

ences(getApplicationContext());

使用 PreferenceManager 的 getDefaultSharedPreferences() 方法可以获取一个

默认的 SharedPreferences 对象,该对象的文件名是根据应用程序的包名自动生

成的。

2. 存储数据

SharedPreferences 提供了多种方法用于存储数据,常用的有 putBoolean()、

putInt()、putFloat()、putLong()、putString() 等方法。例如,存储一个字符

串:

editor = ();

ing("username", "John");

();

这里使用了 SharedPreferences 的 edit() 方法获取一个

对象,然后使用 putString() 方法存储一个键值对,

最后调用 apply() 方法提交修改。

3. 读取数据

SharedPreferences 提供了多种方法用于读取数据,常用的有 getBoolean()、

getInt()、getFloat()、getLong()、getString() 等方法。例如,读取一个字符

串:

String username = ing("username", "");

这里使用 getString() 方法读取键值为 “username” 的字符串,如果该键不存

在,则返回默认值 ““。

4. 更新数据

如果想要更新 SharedPreferences 中的某个值,只需要重新调用 putXxx() 方法

即可。例如,更新用户名:

editor = ();

ing("username", "Jane");

();

5. 删除数据

SharedPreferences 提供了两种方式来删除数据,分别是 remove() 和 clear()

方法。

5.1 使用 remove() 方法删除指定键值对

editor = ();

("username");

();

这里使用 remove() 方法删除键值为 “username” 的键值对。

5.2 使用 clear() 方法删除所有键值对

editor = ();

();

();

这里使用 clear() 方法删除 SharedPreferences 中的所有键值对。

SharedPreferences 的注意事项

1. SharedPreferences 适合存储少量的简单数据,不适合存储大量的复杂数据。

2. SharedPreferences 的数据是存储在应用程序的私有目录下的一个 XML 文

件中,可以通过文件浏览器查看和修改。

3. SharedPreferences 是线程安全的,多个线程可以同时进行读取和写入操作。

4. SharedPreferences 的数据是永久保存的,除非应用程序被卸载或者调用

clear() 方法清除数据。

5. SharedPreferences 的数据是跨进程共享的,可以在不同的组件中读取和写

入相同的数据。

总结

SharedPreferences 是一种轻量级的存储方式,用于保存应用程序的配置数据。它

可以方便地存储和读取简单的键值对,并且可以跨进程共享数据。通过使用

putXxx() 方法存储数据,使用 getXxx() 方法读取数据,以及使用 remove() 和

clear() 方法删除数据,我们可以灵活地操作 SharedPreferences 中的数据。但

需要注意的是,SharedPreferences 适合存储少量的简单数据,不适合存储大量的

复杂数据。同时,由于 SharedPreferences 的数据是存储在应用程序的私有目录

下的一个 XML 文件中,所以需要注意数据的安全性。