当前位置:首页 » 安卓系统 » android传递对象

android传递对象

发布时间: 2025-01-02 18:24:35

1. Android Intent传递对象为什么要序列化,序列化有那几种方式

        我们都知道进行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  

2. android怎么才能传递多个参数和对象

activity之间传递参数你可以
ntent intent = new Intent();
intent.setClass(this, DetailActivity.class);
intent.putExtra("human", human);
intent.putExtra("method", method);
.....
有更多参数都可中圆以在这里put
startActivity(intent);

在相应的activity里可以弊弯这样取传过租培闷来的参数
getIntent().getExtras().getSerializable("human");
.......

3. 如何在不同的android应用之间传递数据

一个Android程序可以由多个Activity和Servier组成,在这些程序组件之间传递数据的方法有以下几种,每种方法都有其特定的使用途径。 1、原始数据类型: 在Activity/Servier之间传递临时性的原始数据,可以使用Intent的putExtras方法来传递数据。若传递的数据需要长久保存,则使用SharedPreference类来完成。 2、传递对象。 当在Activity/Servier之间传递不需要长久保存的对象时,可以使用以下几种途径: (1)通过Application类,每个Android应用程序都有一个Application类。当你在程序的AndroidManifest.xml中给Application设定一个名字时,你的程序中就必须有一个Application的子类。这个Application子类会被Android自动实例化,并且是一个全家性的类,它的生命周期和程序的生命周期相同,你可以把一些全局性的对象保存在Application类中。Application类可以通过getApplication()获得。 (2 通过HashMap of WeakReferences传递对象。当一个Activity需要向另外一个Activity传递对象时,可以使用一个关键字把对象存在一个HashMap中,并把这个关键字通过Internt的Extras发给目标Activity,目标Activity接到该关键字后使用该关键字把对象冲HashMap中取出。

4. android 序列化传递对象是同一个对象吗

putSerializable,是通过对象的序列化和反序列化来实现Activity之间对象的传递的,所以这种方法得到的就是两个完全不一样的对象(Activity2中的对象obj就相当于new了一个新对象,然后将Activity1中的对象obj的值都赋给了它,所以可以说它们的内容是一样的,但是对象不一样.). 注:通过上述方法传递的对象obj一定要实现Serializable接口才可以哦! 一般在Activity之间是不做对象的传递的吧,序列化和反序列化本身就没有一定的弊端吧(个人感觉),呵呵...而且对象都要实现Serializable接口. 如果一定要传对象的话可以在做一些静态的类或对象! 希望对你有帮助 ^_^!

热点内容
遗传算法中的变异 发布:2025-01-05 06:11:22 浏览:259
ftp文件内容相同 发布:2025-01-05 06:11:18 浏览:761
怎么查询电脑在哪个服务器 发布:2025-01-05 06:02:47 浏览:210
我的世界花雨庭服务器装模组 发布:2025-01-05 05:53:08 浏览:7
cc编译单元什么意思 发布:2025-01-05 05:48:09 浏览:126
c语言大题 发布:2025-01-05 05:41:07 浏览:986
访问五老 发布:2025-01-05 05:14:28 浏览:816
javathrow 发布:2025-01-05 05:11:42 浏览:11
securecrt脚本录制 发布:2025-01-05 04:57:37 浏览:528
用户都需要编译吗 发布:2025-01-05 04:54:49 浏览:249