Android Intent传递对象为什么要序列化?

为什么?

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

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

  c.对象可以在IPC之间传递(进程间通信)

那选哪个序列化?

1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。

2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。

3)Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点,但此时还是建议使用Serializable

4)Serializable是Java中的序列化接口,其使用起来简单但是开销很大,序列化和反序列化过程需要大量I\O操作。而Parcelable是Android中序列化方式,因此更适合用在Android平台上,它的缺点是使用起来稍微复杂一点,但是因为有一套模板,所以这点复杂还是可以接受的,而且它的效率很高,这也是Android推荐的序列化方式,因此在Android平台上首选Parcelable。

原文地址:https://www.cnblogs.com/woyaodangxueba/p/10480689.html

时间: 2024-08-08 01:08:45

Android Intent传递对象为什么要序列化?的相关文章

Android Intent传递对象小结

效果: 想看实例的,感兴趣的可以看之前的一篇文章 Android ViewPager Fragment实现选项卡 部分关键代码: public class SerializeActivity extends Activity implements Serializable { Button btnlist, btnParcelable, btnSerialze; private final String TAG = "SerializeActivity"; public final s

Android intent 传递对象以及返回刷新

之前项目需要,找过这方面知识.所以今天也总结一下.大家都知道activity跳转用intent,Android的当前页面跳转到新的页面.当然跳转的同时常常要携带数据或者对象.那我下面就说说跳转带对象吧.还有在例子当中,新的activity返回时,也有对象一起返回.下面看代码,只要入门Android了都看得懂,我就不再写很多注释了. demo源码例子下载地址:点击此处下载 有两种对象类型可以传递,一是Parcelable,推荐用这个.二是Serializable.当然你在class建立对象时,都要

Android Intent传递对象和集合

Article article = JsonUtils.getArticle(content); intent = new Intent(activity, CompositionCorrect.class); Bundle bundle = new Bundle(); bundle.putSerializable("ARTICLE", article); intent.putExtras(bundle); startActivity(intent); 获取传递的对象 private

Android Intent传递对象摘要

效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaG9uZ3NoZW5ncGVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 想看实例的,感兴趣的能够看之前的一篇文章 Android ViewPager Fragment实现选项卡 部分关键代码: public class SerializeActivity extends

Android 全局获取 Context 与使用 Intent 传递对象

=====================全局获取 Context======================== Android 开发中很多地方需要用到 Context,比如弹出 Toast.启动活动.发送广播.操作数据库…… 由于很多操作都是在活动中进行的,而活动本身就是一个 Context 对象,所以获取 Context 并不是那么困难. 但是,当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离 Activity 类,由此在某些情况下,获取 Context 并非那么容易. An

Android高级技巧-intent传递对象

一.使用intent传递对象 (1)使用serializable接口 persion类 package com.example.jixujinjie; import java.io.Serializable; /** * Created by 海绵宝宝 on 2019/4/25. */ public class Persion implements Serializable{//intent不允许传递对象类所以我们把他序列化,继承Serializab private int age; priva

android intent 传递list或者对象

方法一: 如果单纯的传递List<String> 或者List<Integer>的话 就可以直接使用 Java代码 intent.putStringArrayListExtra(name, value) intent.putIntegerArrayListExtra(name, value) 方法二: 如果传递的是List<Object>,可以把list强转成Serializable类型,然后通过 Java代码  putExtras(key, (Serializable

android#使用Intent传递对象

参考自<第一行代码>——郭霖 Intent的用法相信你已经比较熟悉了,我们可以借助它来启动活动.发送广播.启动服务等.在进行上述操作的时候,我们还可以在Intent中添加一些附加数据,以达到传值的效果,比如在FirstActivity中添加如下代码: Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra("string_data", "hello&

Android开发——使用intent传递对象

intent传递对象有两种方法: 方式一:Serializable 方式 方式二:Parcelable方式 在这里不多介绍了,这一篇就是快速上手使用教程,至于详细原理介绍的,请看这一篇http://www.cnblogs.com/kexing/p/8270667.html 我们先在Android Studio下载一个插件android parcelable code generator,安装完毕重启Android Studio之后,我们创建一个java bean类,写上成员变量,直接快速生成ge