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