SharedPreferences定义说明
说明:<br>(1)SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出<br><br>(2)SharedPreferences提供了java常规的Long、Int、String等类型数据的保存接口。 SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问。<br><br>(3)提示最终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好
SharedPreferences数据的四种操作模式
Context.MODE_PRIVATE
为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND
模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.<br>Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
Context.MODE_WORLD_READABLE
表示当前文件可以被其他应用读取.
Context.MODE_WORLD_WRITEABLE
表示当前文件可以被其他应用写入
特别注意:<br>出于安全性的考虑,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 在Android 4.2版本中已经被弃用
SharedPreferences存储和读取数据的步骤
存储数据
(1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象
(2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象
(3)通过SharedPreferences.Editor接口的putXXX方法保存key-value对
(4)通过过SharedPreferences.Editor接口的commit方法保存key-value对
读取数据
(1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象
(2)通过SharedPreferences对象的getXXX方法获取数据
写入和取出数据
写入数据
//写入boolean类型的数据<br>abstract SharedPreferences.Editor putBoolean(String key, boolean value)<br>//写入float类型的数据<br>abstract SharedPreferences.Editor putFloat(String key, float value)<br>//写入int类型的数据<br>abstract SharedPreferences.Editor putInt(String key, int value)<br>//写入long类型的数据<br>abstract SharedPreferences.Editor putLong(String key, long value)<br>//写入String类型的数据<br>abstract SharedPreferences.Editor putString(String key, String value)<br>//写入Set<String>类型的数据<br>abstract SharedPreferences.Editor putStringSet(String key, Set<String> values)<br>
读取数据
//读取所有数据<br>abstract Map<String, ?> getAll()<br>//读取的数据为boolean类型<br>abstract boolean getBoolean(String key, boolean defValue)<br>//读取的数据为float类型<br>abstract float getFloat(String key, float defValue)<br>//读取的数据为int类型<br>abstract int getInt(String key, int defValue)<br>//读取的数据为long类型<br>abstract long getLong(String key, long defValue)<br>//读取的数据为String类型<br>abstract String getString(String key, String defValue)<br>//读取的数据为Set<String>类型<br>abstract Set<String> getStringSet(String key, Set<String> defValues)<br>
SharedPreferences特点
SharedPreferences只能存储少量数据,大量数据不能使用该方式存储,支持存储的数据类型有booleans, floats, ints, longs, and strings