Android中SharedPreferences共享参数的封装

时间:2022-02-08 05:30:14
Android中存在五种数据存储方式:
一:SharedPreferences共享参数存储
二:SQLite数据存储
三:File文件存储
四:ContentProvider内容提供者
五:网络存储。

在项目中也是经常用到这几大存储方式来进行数据存储,项目中会不止一次的用到这些存储方式中的某一个或者某几个,要是每次用到的时候都去写一次,这不免很麻烦,代码也很不清晰,这个时候就需要对相应的方式进行自己的封装,让它能在项目中的任何时候都可以使用。接下来我就分享我在使用SharedPreferences的一些封装和对SharedPreferences的认识:

SharedPreferences的四种操作模式: Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容 Context.MODE_APPEND:此模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件
Context.MODE_WORLD_READABLE:当前文件可以被读取 Context.MODE_WORLD_WRITEABLE:当前文件可以被写入

public class SharedPreferencesUtils {
private SharedPreferences mPreferences;
private static SharedPreferencesUtils sharedPreferencesUtils;

private SharedPreferencesUtils(Context context) {
if (mPreferences == null) {
mPreferences = context.getSharedPreferences("dong", 0);
}
}
/**
* 获取单实例对象
*/
public static SharedPreferencesUtils getInstance(Context context) {
if (sharedPreferencesUtils == null) {
sharedPreferencesUtils = new SharedPreferencesUtils(context);
}
return sharedPreferencesUtils;
}
/**
* 存储String
*/
public static void putString(SharedPreferencesUtils mPreferences, String key,
String v) {
mPreferences.mPreferences.edit().putString(key, v).commit();
}
/**
* 取String
*/
public static String getString(Context context, String key) {
return getInstance(context).mPreferences.getString(key, "");
}
/**
* 存储String
*/
public static void putString(Context context, String key, String v) {
getInstance(context).mPreferences.edit().putString(key, v).commit();
}
/**
* 取String
*/
public static String getString(SharedPreferencesUtils mPreferences, String key) {
return mPreferences.mPreferences.getString(key, "");
}
/**
* 取int
*/
public static int getInt(SharedPreferencesUtils mPreferences, String key) {
return mPreferences.mPreferences.getInt(key, -1);
}
/**
* 取int
*/
public static int getInt(Context context, String key) {
return getInstance(context).mPreferences.getInt(key, -1);
}
/**
* 存储String
*/
public static void putInt(SharedPreferencesUtils mPreferences, String key,
int v) {
mPreferences.mPreferences.edit().putInt(key, v).commit();
}
/**
* 存储String
*/
public static void putInt(Context context, String key, int v) {
SharedPreferencesUtils.getInstance(context).mPreferences.edit().putInt(key, v).commit();

}
/**
* 取Long
*/
public static long getLong(Context context, String key) {
return getInstance(context).mPreferences.getLong(key, -1);
}
/**
* 存储String
*/
public static void putLong(Context context, String key,
long v) {
getInstance(context).mPreferences.edit().putLong(key, v).commit();
}
/**
* 存储String
*/
public static void putLong(Context context, String key, String v) {
long l = 0;
try {
l = Long.parseLong(v);
} catch (NumberFormatException e) {
e.printStackTrace();
}
getInstance(context).mPreferences.edit().putLong(key, l).commit();
}
/**
* 取Long
*/
public static long getLong(SharedPreferencesUtils mPreferences, String key) {
return mPreferences.mPreferences.getLong(key, -1);
}
/**
* 存储String
*/
public static void putLong(SharedPreferencesUtils mPreferences, String key,
long v) {
mPreferences.mPreferences.edit().putLong(key, v).commit();
}
}
以上呢就是我在平常的需求中实现的 SharedPreferences的工具类。