📜  片段中的 sharedpreferences (1)

📅  最后修改于: 2023-12-03 15:40:49.345000             🧑  作者: Mango

SharedPreferences

简介

SharedPreferences是一种轻量级的数据存储方式,用于存储少量的基础数据类型,如key-value键值对、布尔型、字符串、整型等数据。SharedPreferences是Android提供的一种持久化存储的技术,即它能够存储一些简单的、经常需要访问的配置信息。

SharedPreferences存储的数据被保存在应用的数据目录下的一个xml文件中,这些数据只能在应用中被访问到。

使用方法

首先,我们需要在代码中获取到SharedPreferences对象,可以通过以下方式获得:

SharedPreferences preferences = getSharedPreferences("mySharedPreferencesFile", MODE_PRIVATE);

其中,第一个参数是SharedPreferences的名称,建议采用应用程序的包名作为文件名,并置于com.之后。第二个参数是访问权限,指定MODE_PRIVATE表示该SharedPreferences只能被当前应用程序访问。

然后,我们可以通过以下方式来存储数据:

SharedPreferences.Editor editor = preferences.edit();
editor.putString("name", "Tom");
editor.putInt("age", 21);
editor.putBoolean("isMale", true);
editor.commit();

其中,SharedPreferences.Editor是用于编辑和提交SharedPreferences的编辑器。putString()方法用于向SharedPreferences中存储一个字符串类型的值,putInt()方法用于存储一个整型类型的值,putBoolean()方法用于存储一个布尔类型的值。调用commit()方法将更改的数据提交到SharedPreferences中,完成存储操作。

我们也可以通过以下方式来读取保存的数据:

String name = preferences.getString("name", "none");
int age = preferences.getInt("age", 0);
boolean isMale = preferences.getBoolean("isMale", false);

其中,第一个参数是键名,第二个参数是默认值,如果SharedPreferences中没有对应的键值,则返回默认值。

注意事项
  1. 数据存储量需要控制在较小的范围内,不建议存储大量数据。
  2. 数据的存储和读取都是同步的,所以在多个线程同时操作同一个SharedPreferences对象时,可能会导致读写冲突,需要进行线程同步处理。
  3. 不要在SharedPreferences中存储用户隐私信息,如密码、银行卡号等敏感数据。
  4. 不要将SharedPreferences作为全局变量使用,每次需要使用时,都应该重新获取SharedPreferences对象。
总结

SharedPreferences是一个轻量级的数据存储方式,使用简单方便,适合存储少量、经常需要访问的数据。在实际开发过程中,我们需要根据具体的需求进行使用,并注意存储数据量的大小,线程同步等方面。