SharedPreferences,翻译过来是共享偏好,是用于以键值对的形式存储应用偏好信息的API,使用方法一般是先获取指向某个文件的SharedPreferences对象,然后使用该对象读写键值对。
获取SharedPreferences对象
有三个方法可供选择:
-
Context
类的getSharedPreferences()
- 可以指定文件名
name
和打开模式mode
,mode
目前只能指定MODE_PRIVATE
,其他均被弃用 - 对同一个文件多次调用只会返回一个实例,线程安全
- 如果SharedPreferences目录(/data/data/<package name>/shared_prefs/)不存在,会先创建
- 如果指定的文件不存在,将会在调用
edit()
方法时创建
- 可以指定文件名
-
Activity
类的getPreferences()
- 默认使用活动类名作为文件名,只能指定打开模式
mode
- 该偏好文件属于调用的活动,是私有的
- 默认使用活动类名作为文件名,只能指定打开模式
-
PreferenceManager
类的getDefaultSharedPreferences
- 传入
context
- 获取整个应用的默认共享偏好设置文件
- 传入
写入SharedPreferences
通过调用SharedPreferences对象的edit()
方法来获取SharedPreferences.Editor
对象,然后使用其提供的putInt()
、putString()
等方法写入键和值,最后调用apply()
或commit()
提交更改。apply()
会将对SharedPreferences对象的修改异步写入磁盘,而commit()
会同步写入磁盘,所以可能会阻塞主线程。
读取SharedPreferences
通过直接调用SharedPreferences
对象的getInt()
、getString()
等方法来获取键对应的值,需要传入键和默认值。