SharedPreferences 存储对象

此方式可以保存将对象持久化到SharedPreferences,存储的对象需要实现Serializable接口。

private static SharedPreferences sPref;  
  
private static SharedPreferences getPreference(Context ctx) {  
    if (sPref == null) {  
    sPref = ctx.getApplicationContext()  
    .getSharedPreferences("PREF_NAME", Context.MODE_PRIVATE);  
    }  
    return sPref;  
}  
  
private static Editor getEditor(Context ctx) {  
    return getPreference(ctx).edit();  
}  
  
private static void writeObject(Context ctx, String key, Object obj) {  
    try {  
        ByteArrayOutputStream baos = new ByteArrayOutputStream();  
        ObjectOutputStream oos = new ObjectOutputStream(baos);  
        oos.writeObject(obj);  
        String objBase64 = new String(Base64.encode(baos.toByteArray()));  
        getEditor(ctx).putString(key, objBase64).commit();  
    } catch (Exception e) {  
        Log.e("test", "saveObject error", e);  
    }  
}  
  
private static Object readObject(Context ctx, String key) {  
    try {  
        String objBase64 = getPreference(ctx).getString(key, null);  
        if (TextUtils.isEmpty(objBase64)) {  
            return null;  
        }  
        byte[] base64 = Base64.decode(objBase64);  
        ByteArrayInputStream bais = new ByteArrayInputStream(base64);  
        ObjectInputStream bis = new ObjectInputStream(bais);  
        return bis.readObject();  
    } catch (Exception e) {  
        Log.e("test", "readObject error", e);  
    }  
    return null;  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JAVA序列化机制的深入研究 对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整...
    时待吾阅读 10,935评论 0 24
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,647评论 25 708
  • 面试题总结 通用 安卓学习途径, 寻找资料学习的博客网站 AndroidStudio使用, 插件使用 安卓和苹果的...
    JingBeibei阅读 1,723评论 2 21