Android SharedPreferences
介绍
在 Android 开发中,数据存储是一个非常重要的部分。SharedPreferences 是 Android 提供的一种轻量级的数据存储方式,用于存储简单的键值对数据。它通常用于存储应用的配置信息、用户偏好设置等。
SharedPreferences 的数据以 XML 文件的形式存储在设备的文件系统中,文件位于应用的私有目录下,其他应用无法访问。它的使用非常简单,适合存储少量的、结构简单的数据。
SharedPreferences 的基本用法
获取 SharedPreferences 实例
要使用 SharedPreferences,首先需要获取一个 SharedPreferences 实例。可以通过 Context
的 getSharedPreferences()
方法来获取:
SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", Context.MODE_PRIVATE);
"my_preferences"
是 SharedPreferences 文件的名称。Context.MODE_PRIVATE
表示该文件只能被当前应用访问。
存储数据
使用 SharedPreferences.Editor
来存储数据。以下是一个存储字符串的示例:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username", "JohnDoe");
editor.putInt("user_age", 25);
editor.apply();
putString()
用于存储字符串。putInt()
用于存储整数。apply()
用于异步提交更改。
提示
使用 apply()
而不是 commit()
,因为 apply()
是异步的,不会阻塞主线程。
读取数据
读取数据非常简单,直接调用 SharedPreferences 的相应方法即可:
String username = sharedPreferences.getString("username", "default_value");
int userAge = sharedPreferences.getInt("user_age", 0);
getString()
用于读取字符串。getInt()
用于读取整数。- 第二个参数是默认值,如果键不存在,则返回该默认值。
删除数据
如果需要删除某个键值对,可以使用 remove()
方法:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove("username");
editor.apply();
清空数据
要清空所有数据,可以使用 clear()
方法:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.apply();
实际应用场景
保存用户登录状态
假设你正在开发一个应用,用户登录后需要保存用户的登录状态。可以使用 SharedPreferences 来存储用户的登录信息:
// 用户登录成功后保存信息
SharedPreferences sharedPreferences = getSharedPreferences("user_preferences", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("is_logged_in", true);
editor.putString("user_email", "[email protected]");
editor.apply();
// 检查用户是否已登录
boolean isLoggedIn = sharedPreferences.getBoolean("is_logged_in", false);
if (isLoggedIn) {
String userEmail = sharedPreferences.getString("user_email", "");
// 显示用户已登录的界面
} else {
// 显示登录界面
}