SharePreference 保存对象

存储对象 

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;
    }
}

猜你喜欢

转载自blog.csdn.net/dubo_csdn/article/details/88954301
今日推荐