• JAVA Serialization 序列化


    最近在做Android 项目时用到了WebView,可悲的是,在html上有无数用户的操作,而这些操作被JS返回给了Android的内存中,当深层的Activity开启时,之前的Activity很可能被系统放掉,导致内存里的对象丢失,无法恢复之前的操作,因此需要对对象进行序列化,将对象保存在flash中,返回的时候进行反序列化,从而恢复对象

    1.重写onSaveInstanceState

        @Override
        protected void onSaveInstanceState(Bundle outState) {
    }


    将对象在方法中进行序列化,尤其需要注意的是,不仅对象需要实现Serialization接口, 其引用的对象也需要实现该接口,否则会抛出异常,有意思的是,该接口并不需要实现任何接口方法,Thinking in java 中说,他只是一个旗帜

    public class Test implements Serializable{
    }


    2.序列化与反序列化

        private static Object ByteToObject(String filePath) {
    
            java.lang.Object obj = null;
            try {
                FileInputStream bi = new FileInputStream(filePath);
                ObjectInputStream oi = new ObjectInputStream(bi);
                obj = oi.readObject();
                bi.close();
                oi.close();
            }
            catch(Exception e){
                System.out.println("translation"+e.getMessage());
                e.printStackTrace();
            }
            return obj;
        }
    
        public void ObjectToByte(String filePath,Object obj) {
    
            File tempFile = new File(filePath.substring(0,filePath.lastIndexOf("/")));
            tempFile.delete();
            if(!tempFile.exists()){
                tempFile.mkdirs();
            }
            try {
                FileOutputStream bo = new FileOutputStream(filePath);
                ObjectOutputStream oo = new ObjectOutputStream(bo);
                oo.writeObject(obj);
                bo.close();
                oo.close();
            }
            catch(Exception e){
                System.out.println("translation"+e.getMessage());
                e.printStackTrace();
            }
        }

    这两个函数也是我Search到的,稍微修改了一下就可以使用了。



  • 相关阅读:
    简单实用游标更改数据
    C# Http以文件的形式上传文件
    简单例子理解数据库事务
    安卓 隐藏按钮
    jQuery EasyUI API 中文文档
    Linux搭建Tomcat环境
    linux教程之一
    Android服务之PackageManagerService启动源码分析
    DSP、Media、AdExchanger之间的关系及交互流程
    Unity3D中的Coroutine具体解释
  • 原文地址:https://www.cnblogs.com/riskyer/p/3230756.html
Copyright © 2020-2023  润新知