美文网首页Android
Android Intent传递对象为什么要序列化,序列化有那几

Android Intent传递对象为什么要序列化,序列化有那几

作者: 予以摩卡 | 来源:发表于2017-09-15 11:41 被阅读366次

            我们都知道进行android 开发的时候,跳转到Activity和Fragment的时候,传递对象是通过Intent或者bundle 进行传递。当这个对象没有实现序列化的时候 当你通过Inetnt传递的时候会报红,系统会提示你将这个对象实现序列化。

          1.先了解一下 什么是序列化。通过对《Android 开发艺术探索》可以知道序列化是将一个对象转化成可存储可传输的状态,序列化后的对象可以在网络上传输,也可以存储到本地。

           2.回到我们的主题,那为什么要序列化呢?<大致有三个原因>

                   a.永久性保存对象,保存对象的字节序列到本地文件中

                   b.对象可以在网络中传输

                   c.对象可以在IPC之间传递

        3.序列化有那几种方式呢<有两种方式> 

          android自定义对象可序列化有两个选择一个是Serializable和Parcelable

         4.它们之间有什么区别?

                 a.在使用内存的时候Parcelable比Serializable的性能高。

                 b.Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC(内存回收)。

                 c.Parcelable不能使用在将对象存储在磁盘上这种情况,因为在外界的变化下Parcelable不能很好的保证数据的持续性。

                d.实现Serializable很简单 因为Serializable是一个空接口 所以只要在在实体类中实现这个接口即可 Parcelable就稍微复杂了一点了 

                这里有实现Parcelable 这个接口的列子 blog.csdn.net/jaycee110905/article/details/21517853 

    相关文章

      网友评论

        本文标题:Android Intent传递对象为什么要序列化,序列化有那几

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