存储对象
public class UserInfoCache {
private static String roleName = "roleName";
public static void setUserInfo(Context context, EntityUserInfo userInfo){
PreferenceUtils.setParam(context,roleName, Utils.serializeObject(userInfo));
}
public static EntityUserInfo getUserInfo(Context context){
Object object = Utils.deSerializationObject(PreferenceUtils.getString(context,roleName));
return (null != object) ? ((EntityUserInfo)object) : null;
}
public static void removeAllCacheData(Context context){
PreferenceUtils.remove(context,roleName);
}
}
序列化,反序列化
public static String serializeObject(Object object) {
try {
if (null != object) {
long startTime = System.currentTimeMillis();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(object);
String serStr = byteArrayOutputStream.toString("ISO-8859-1");
serStr = java.net.URLEncoder.encode(serStr, "UTF-8");
objectOutputStream.close();
byteArrayOutputStream.close();
return serStr;
} else {
return "";
}
} catch (IOException e) {
e.printStackTrace();
return "";
}
}
//反序列化对象
public static Object deSerializationObject(String saveObjStr) {
try {
if (!TextUtils.isEmpty(saveObjStr) && saveObjStr.length() > 0) {
long startTime = System.currentTimeMillis();
String redStr = java.net.URLDecoder.decode(saveObjStr, "UTF-8");
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(redStr.getBytes("ISO-8859-1"));
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
Object obj = objectInputStream.readObject();
objectInputStream.close();
byteArrayInputStream.close();
return obj;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
用Gson存储
public class PreferenceUtils {
private static SharedPreferences sp;
public static String MESSAGEINFO = "messageInfo";
public static String MESSAGEINFOBEAN = "messageInfoBean";
public static void putMessageInfo(Context ctx, List<MessageInfo> bookList) {
if (sp == null) {
sp = ctx.getSharedPreferences("config", MODE_PRIVATE);
}
SharedPreferences.Editor editor = sp.edit();
Gson gson = new Gson();
String json = gson.toJson(bookList);
editor.putString(MESSAGEINFO, json);
editor.commit();
}
public static List<MessageInfo> getMessageInfo(Context ctx) {
if (sp == null) {
sp = ctx.getSharedPreferences("config", MODE_PRIVATE);
}
Gson gson = new Gson();
String json = sp.getString(MESSAGEINFO, null);
Type type = new TypeToken<List<MessageInfo>>() {}.getType();
List<MessageInfo> arrayList = gson.fromJson(json, type);
return arrayList;
}
public static void putMessageInfoBean(Context ctx, List<MessageInfo.MessageBean> bookList) {
if (sp == null) {
sp = ctx.getSharedPreferences("config", MODE_PRIVATE);
}
SharedPreferences.Editor editor = sp.edit();
Gson gson = new Gson();
String json = gson.toJson(bookList);
editor.putString(MESSAGEINFOBEAN, json);
editor.commit();
}
public static List<MessageInfo.MessageBean> getMessageInfoBean(Context ctx) {
if (sp == null) {
sp = ctx.getSharedPreferences("config", MODE_PRIVATE);
}
Gson gson = new Gson();
String json = sp.getString(MESSAGEINFOBEAN, null);
Type type = new TypeToken<List<MessageInfo.MessageBean>>() {}.getType();
List<MessageInfo.MessageBean> arrayList = gson.fromJson(json, type);
return arrayList;
}
}