SharePrefences是Android数据存储最常用的方式之一
SharePrefence是用来保存少量数据的方式,如保存程序配置信息等。SharePrefences的源码如下所示:
package android.content;
import java.util.Map;
import java.util.Set;
public interface SharedPreferences {
public interface OnSharedPreferenceChangeListener {
/*监听Shareprefences变化,当key变化时,做处理*/
void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key);
}
public interface Editor {
/*用于存储数据的方法*/
Editor putString(String key, String value);
Editor putStringSet(String key, Set<String> values);
Editor putInt(String key, int value);
Editor putLong(String key, long value);
Editor putFloat(String key, float value);
Editor putBoolean(String key, boolean value);
/*移除某一项*/
Editor remove(String key);
/*清空的方法*/
Editor clear();
/*同步保存更改的方法*/
boolean commit();
/*异步保存到磁盘,原子提交,性能更高,不保证结果*/
void apply();
}
/*获取所有的键值对*/
Map<String, ?> getAll();
/*取值的方法*/
String getString(String key, String defValue);
Set<String> getStringSet(String key, Set<String> defValues);
int getInt(String key, int defValue);
long getLong(String key, long defValue);
float getFloat(String key, float defValue);
boolean getBoolean(String key, boolean defValue);
/*判断是否包含某个key*/
boolean contains(String key);
/*编辑接口*/
Editor edit();
/*注册监听函数*/
void registerOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener);
/*注销监听看书*/
void unregisterOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener);
}
可以看出Shareprefences是一个接口,提供了保存和读取数据的方法。同时可以看出Shareprefences只能存储基本数据,它的Key只能是String。
使用方法
保存数据的方法,获取默认名称的Shareprefences,其名称是工程包名:
SharedPreferences sp=getSharedPreferences("user", Context.MODE_PRIVATE); SharedPreferences.Editor editor=sp.edit();
editor.putString("username", "root");
editor.commit();
支持三种模式:
读取数据的方法:
SharedPreferences sp=getSharedPreferences("user", Context.MODE_PRIVATE);
String username=sp.getString("username", "error");