SharedPreferences是 Android 平台为应用开发者提供的一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了 putString()、putString(Set<String>)、putInt()、putLong()、putFloat()、putBoolean() 六种数据类型。在应用中通常做一些简单数据的持久化存储,通常用来保存各种配置信息,其本质是一个以“键-值”对的方式保存数据的xml文件,其文件保存在/data/data//shared_prefs目录下
SharedPreferences的四种操作模式
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
/**
* 保存到本地的配置文件
*
* @author VinPin
*/
public class SharedPreference {
private static String FILLNAME = "config";// 文件名称
private static SharedPreferences mSharedPreferences = null;
public final static String PRE_ACCOUNT = "account";
public final static String PRE_USERID = "userid";
public final static String PRE_TOKENID = "tokenid";
public final static String PRE_USERNAME = "username";
public final static String PRE_USEREMAIL = "useremail";
public final static String PRE_PHONE = "phone";
/**
* 单例模式
*/
public static synchronized SharedPreferences getInstance(Context context) {
if (mSharedPreferences == null) {
mSharedPreferences = context.getApplicationContext().getSharedPreferences(FILLNAME, Context.MODE_PRIVATE);
}
return mSharedPreferences;
}
/**
* SharedPreferences常用的10个操作方法
*/
public static void putBoolean(String key, boolean value, Context context) {
SharedPreference.getInstance(context).edit().putBoolean(key, value).apply();
}
public static boolean getBoolean(String key, boolean defValue, Context context) {
return SharedPreference.getInstance(context).getBoolean(key, defValue);
}
public static void putString(String key, String value, Context context) {
SharedPreference.getInstance(context).edit().putString(key, value).apply();
}
public static String getString(String key, String defValue, Context context) {
return SharedPreference.getInstance(context).getString(key, defValue);
}
public static void putInt(String key, int value, Context context) {
SharedPreference.getInstance(context).edit().putInt(key, value).apply();
}
public static int getInt(String key, int defValue, Context context) {
return SharedPreference.getInstance(context).getInt(key, defValue);
}
/**
* 移除某个key值已经对应的值
*/
public static void remove(String key, Context context) {
SharedPreference.getInstance(context).edit().remove(key).apply();
}
/**
* 清除所有内容
*/
public static void clear(Context context) {
SharedPreference.getInstance(context).edit().clear().apply();
}
}