Andoid序列化的坑

作者: dbef03651bfd | 来源:发表于2016-11-16 20:08 被阅读127次
    传递数据就是要这种飞出去的感觉
    • 在Activity中传递自定义数据时,需要实现 Serializable或者Parcelable接口。可以用bundle putSerializable(String,Serizlizable)或者直接用intent putExtra(String,Serizlizable)两种方法。
    • 自定义的数据是需要全部序列化的,包括其包含的对象。如下:
      • A对象可以被传递
        public class A implemet Serializable{
        private String name;
        private int Age;
        }
      • A对象是不可以被传递的,因为其包含的对象B没有序列化。
        public class A implemet Serializable{
        private String name;
        private int Age;
        private B b;
        class B{
        private String ID;
        }
        }
      • 这样写的A对象才能被传递
        public class A implemet Serializable{
        private String name;
        private int Age;
        private B b;
        class B implement Serializable{
        private String ID;
        }
        }
    • 另外需要注意的是,当对象中的集合保存的数据类型是自定义数据时,也需要序列化这个自定义数据,不然数据无法传递。如下:
      • A对象不能被传递
        public class A implemet Serializable{
        private String name;
        private int Age;
        private List<B> data;
        class B {
        private String ID;
        }
        }
      • A对象可以被传递
        public class A implemet Serializable{
        private String name;
        private int Age;
        private List<B> data;
        class B Serializable{
        private String ID;
        }
        }
    • 搞清楚这些问题后,妈妈再也不用担心我的数据无法传递了。

    相关文章

      网友评论

        本文标题:Andoid序列化的坑

        本文链接:https://www.haomeiwen.com/subject/cslrpttx.html