- 浏览: 117124 次
- 性别:
- 来自: 重庆
文章分类
最新评论
android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable。
一 序列化原因:
1.永久性保存对象,保存对象的字节序列到本地文件中;
2.通过序列化对象在网络中传递对象;
3.通过序列化在进程间传递对象。
二 至于选取哪种可参考下面的原则:
1.在使用内存的时候,Parcelable
类比Serializable性能高,所以推荐使用Parcelable类。
2.Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。
3.Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点,
也不提倡用,但在这种情况下,还是建议你用Serializable
。
实现:
1 Serializable 的实现,只需要继承 implements Serializable 即可。这只是给对象打了一个标记,系统会自动将其序列化。
2 Parcelabel 的实现,需要在类中添加一个静态成员变量 CREATOR,这个变量需要继承 Parcelable.Creator 接口。
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->public class MyParcelable implements Parcelable {
private int mData;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
private int mData;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
转载至:http://www.blogjava.net/lincode/archive/2011/09/16/358805.html
发表评论
-
Android Camera 使用小结
2012-03-06 17:07 1463Android Camera 使用小结 Android手 ... -
Android权限说明
2012-03-05 14:12 658程序执行需要读取到安全敏感项必需在androidma ... -
Android Bitmap和Canvas学习笔记
2012-03-05 11:45 759位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户是最 ... -
详解 Android 的 Activity 组件
2012-02-29 09:24 877Activity 的生命周期 和 J2ME 的 MI ... -
JNI技术与Android应用
2012-02-20 17:08 2783本文转自http://www.cnblogs.com/y ... -
如何发布打包并发布自己的Android应用(APP)
2012-02-20 15:30 757前面讲的都是关于And ... -
Android JNI知识简介
2012-02-16 17:33 794Java Native Interface (JNI)标准是j ... -
Android NDK: Host 'awk' tool is outdated.
2012-02-16 16:27 1163在使用Android NDK进行编译的时候可能会出现 Andr ... -
windows+eclipse+cygwin+cdt+ndk
2012-02-16 15:56 914代码下载 - 公共邮 ... -
解决Android自定义标题栏充满的问题
2012-02-15 10:27 806一个接着一个的activi ... -
WebView使用
2012-02-10 11:43 856WebView使用: Java代码 ... -
Android自定义title bar(标题栏)
2012-02-10 11:40 1224我们在开发程序是经常会需要软件全屏显示、自定义标题(使用按 ... -
Android应用开发中的风格和主题(style,themes)
2012-02-10 11:09 9734越来越多互联网企业都在Android平台上部署其客户端, ... -
Android 对话框(Dialog)大全 建立你自己的对话框
2012-02-10 10:03 775Activities提供了一种方便管理的创建、保存、回复 ... -
PerferenceActivity用法
2012-02-10 10:01 985看到很多书中都没有 ... -
android:webView总结
2012-02-09 15:53 1208android:webView总结 大部分内容为网 ... -
Android中Intent传递对象的两种方法(Serializable,Parcelable)
2012-02-07 17:16 789转载自 http://blog.csdn.net/xyz ... -
Android拟器不能正常上网
2012-01-19 11:18 886启动模拟器后,可能模拟器不能正常上网,需要对模拟器进行设 ... -
Android平台常见属性集合
2012-01-19 10:56 902属性 值 说明 ... -
Android平台常见属性集合
2012-01-19 10:42 1属性 值 说明 android:orientation hor ...
相关推荐
本文将深入探讨两种主要的序列化方式:Serializable和Parcelable,并比较它们的优缺点以及适用场景。 首先,我们来了解什么是序列化。序列化是将对象的状态转换为可存储或可传输的形式的过程。在Android中,这个...
数据通过Intent.putExtra()方法添加,支持基本数据类型(如字符串、整型、浮点型)以及Parcelable和Serializable对象。当Intent传递的数据量较小或不涉及复杂对象时,Intent是非常方便的选择。 2. **Bundle**: ...
当我们需要在Intent中传递复杂对象时,有两种主要的方法:Serializable和Parcelable。这两种方式都可以实现对象的序列化,但它们在性能和效率上存在差异。 **Serializable接口** Serializable接口是Java提供的一个...
大家都知道在intent传递对象的方法有两种:1、实现Serializable接口、2、实现Parcelable接口,接下来通过本文给大家介绍Intent传递对象之Serializable和Parcelable的区别,感兴趣的朋友一起学习吧
本篇将详细讲解两种常见的序列化方式:Serializable和Parcelable,并通过实例代码来加深理解。 1. **Serializable接口** `Serializable` 是Java标准库提供的一种简单的序列化方式,位于`java.io`包下。任何实现了`...
Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);...当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口。
面试官:“说一下Serializable接口和Parcelable接口的区别吧。” 我们可以从以下两方面来说一说~ 首先我们先给两者来个简单的介绍: 1.定义 Serializable(Java自带): Serializable是序列化的意思,表示将一个对象...
本文主要探讨两种序列化方式:Serializable和Parcelable。 1. **序列化的目的** - **永久保存对象数据**:通过序列化,对象的状态可以被保存到文件或数据库中,即使应用关闭后,仍能恢复这些状态。 - **网络传输*...
二者的使用场景和区别: 1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。 2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。 3)Parcelable不能使用在要将...
Android Intent传递对象的两种方法(Serializable,Parcelable)详细介绍 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle....
Android提供了两种主要的序列化方式:Parcelable和Serializable。这两种方式都可以将对象转换为字节流,便于存储、传输或恢复。下面将详细讨论Android通过Parcelable和Serializable实现各种类型嵌套序列化的方法。 ...
在Android开发中,数据传输和序列化是必不可少的环节,其中`Parcelable`和`Serializable`是两种常用的序列化方式。本文将深入解析这两种机制的区别、优缺点以及它们的使用场景。 首先,`Serializable`接口是Java...
在Android开发中,数据传输和保存是常见的需求,而`Parcelable`和`Serializable`就是两种主要的序列化机制。它们都是将对象转换为字节流,以便存储或在网络中传递,但`Parcelable`通常被认为比`Serializable`更高效...
本文将深入探讨Android中两种主要的序列化方式:Serializable和Parcelable,并解析它们的工作原理及优缺点。 首先,我们来了解Serializable接口。Serializable是Java提供的一个标准序列化接口,任何实现了此接口的...
android Activity之间数据传递 Parcelable和Serializable接口的使用的具体实例代码,详情请看>http://blog.csdn.net/js931178805/article/details/8268144