在移动应用中,经常会遇到要读取、存储少量数据的场景,如果使用数据库就有点杀鸡用牛刀的感觉。还好,Android为开发人员提供了一个叫 SharedPreferences 的机制,可以用于存储这样的数据。
一个 SharedPreferences 是一个轻量级的存储类,它是用xml文件存放数据,文件存放在/data/data/应用包名/shared_prefs 目录下。SharedPreferences 可用于存储 int、boolean、float、long、String、StringSet 等多种数据类型的数据。
保存数据
要保存数据,需要执行以下步骤:
- 获得SharedPreferences对象实例,这个任务是通过调用 getSharedPreferences 来完成的:
1 | SharedPreferences settings = getSharedPreferences(“AppSettings”, Context.MODE_PRIVATE); |
其中:
第一个参数是为 SharedPreferences 指定的名字,
第二个参数是 SharedPreferences 的操作模式,常用的取值为:
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
- 开启编辑模式,设置数据,然后提交更改
1 | settings.edit() |
在示例中,模拟了从界面读取信息存入到 SharedPreferences 的场景
读取数据
- 获得SharedPreferences对象实例,这个任务是通过调用 getSharedPreferences 来完成的:
1 | SharedPreferences settings = getSharedPreferences(“AppSettings”, Context.MODE_PRIVATE); |
- 调用对应数据类型的get方法
1 | SharedPreferences settings = getSharedPreferences(SHARED_PREFS_NAME, 0); |
完整的示例代码如下:
布局文件: activity_shared_prefs.xml
1 |
|
类文件:
1 | public class SharedPrefsActivity extends AppCompatActivity { |