public class SharedPrefUtils {
//SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下:
private SharedPrefUtils() { }
private static SharedPrefUtils sharedPrefUtils;
public static SharedPrefUtils getInstance() {
if (sharedPrefUtils == null) {
synchronized (SharedPrefUtils.class) {
if (sharedPrefUtils == null) {
sharedPrefUtils = new SharedPrefUtils();
}
}
}
return sharedPrefUtils;
}
private static Gson gson;
public static Gson getInstanceGson() {
if (gson == null) {
synchronized (SharedPrefUtils.class) {
if (gson == null) {
gson = new Gson();
}
}
}
return gson;
}
private static final String comm_name="comm_name";
private static SharedPreferences init(String name){
getInstance();
return MyApp.getApp().getSharedPreferences(name, Context.MODE_PRIVATE);
}
//
public static void putKV(String key, String vaule){
SharedPreferences sp = init(comm_name);
Editor editor = sp.edit();
editor.putString(key, vaule);
editor.commit();
}
public static String getKV(String key){
SharedPreferences sp = init(comm_name);
return sp.getString(key, "");
}
//
public static void putObject(String key, Object vaule){
SharedPreferences sp = init(comm_name);
Editor editor = sp.edit();
String objJson=getInstanceGson().toJson(vaule);
editor.putString(key, objJson);
editor.commit();
}
public static Object getObject(String key, Class<?> vaule){
SharedPreferences sp = init(comm_name);
Object t = getInstanceGson().fromJson(sp.getString(key, ""), vaule);
return t;
}
public static Object getObject(Class<?> vaule){
SharedPreferences sp = init(comm_name);
Object t = getInstanceGson().fromJson(sp.getString(vaule.getName(), ""), vaule);
return t;
}
//
}
SharedPreferences保持对象数据
该代码段展示了如何在Android中通过Singleton模式创建一个工具类`SharedPrefUtils`,用于利用SharedPreferences进行键值对存储及对象序列化。通过`putKV()`和`getKV()`方法处理字符串数据,`putObject()`和`getObject()`则用于存储和检索Gson序列化的对象。此工具类简化了数据持久化的过程。
摘要由CSDN通过智能技术生成