Android中的Parcelable序列化对象
今天查阅资料,简单了解了一下Parcelable接口,它是android提供的序列化对象的接口,比java中的
Serializable高效些。通过这个接口序列化对象主要有两步:
1.实现public void writeToParcel(Parcel dest, int flags) {}方法;
2.实例化CREATOR
public static final Parcelable.Creator<ParcelableImpl> CREATOR = new Parcelable.Creator<ParcelableImpl>() { @Override public ParcelableImpl createFromParcel(Parcel source) { return new ParcelableImpl(source); } @Override public ParcelableImpl[] newArray(int size) { return new ParcelableImpl[size]; } };
详细说明参照如下代码:
import android.os.Parcel; import android.os.Parcelable; public class ParcelableImpl implements Parcelable { private int num; ParcelableImpl(Parcel in) { num = in.readInt(); } @Override public int describeContents() { return 0; } //将ParcelableImpl对象序列化为一个Parcel对象 @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(num); } // CREATOR 必须大写,而且必须是“CREATOR” public static final Parcelable.Creator<ParcelableImpl> CREATOR = new Parcelable.Creator<ParcelableImpl>() { //将Parcel对象发序列化为ParcelableImpl @Override public ParcelableImpl createFromParcel(Parcel source) { return new ParcelableImpl(source); } @Override public ParcelableImpl[] newArray(int size) { return new ParcelableImpl[size]; } }; }
相关推荐
-
Android中Serializable和Parcelable序列化对象详解
本文详细对Android中Serializable和Parcelable序列化对象进行学习,具体内容如下 学习内容: 1.序列化的目的 2.Android中序列化的两种方式 3.Parcelable与Serializable的性能比较 4.Android中如何使用Parcelable进行序列化操作 5.Parcelable的工作原理 6.相关实例 1.序列化的目的 1).永久的保存对象数据(将对象数据保存在文件当中,或者是磁盘中 2).通过序列化操作将对象数据在网络上进行传输(由于网络传输是以
-
很详细的android序列化过程Parcelable
直接上代码:注释都写的很清楚了. public class Entry implements Parcelable{ public int userID; public String username; public boolean isMale; public Book book;//序列化对象可以嵌套序列化对象,前提是2个类的对象都被序列号过 //几乎所有情况下都返回0,可以不管 @Override public int describeContents() { return 0; } //
-
Android Intent传递对象的两种方法(Serializable,Parcelable)详细介绍
Android Intent传递对象的两种方法(Serializable,Parcelable)详细介绍 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大家更容易理解我还是照常写
-
Android Parcelable接口使用方法详解
Android Parcelable接口使用方法详解 1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. Classes implementing the Parcelable interface must also have a static field called CREATOR, which is an object implementin
-
Android Parcelable与Serializable详解及区别
Android Parcelable与 Serializable区别 1.作用 Serializable的作用是为了保存对象的属性到本地文件.数据库.网络流.rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的.而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,Parcelable是通过IBinder通信的消息的载体. 从上面的设计上我
-
Android中使用Intent在Activity之间传递对象(使用Serializable或者Parcelable)的方法
Android中的不同Activity之间传递对象,我们可以考虑采用Bundle.putSerializable(Key,Object);也可以考虑采用Bundle.putParcelable(Key, Object);其中前面一种方法中的Object要实现Serializable接口,后面一种方法中的Object要实现Parcelable接口.下面我们以一个完整的例子来说明. 1.新建一个Android的工程,其中该工程的目录结构如下图: 2. 修改main.xml布局文件.布局文件的源码如下
-
Android中Parcelable的作用实例解析
在android提供了一种类型:Parcel.被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递. 除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中. Parcelable实现要点:需要实现三个东西 1)writeToParcel 方法.该方法将类的数据写入外部提供的Parcel中.声明如下: writeToParcel (Parcel dest, int flags) 具体参数含义见javadoc 2)describeContents方法.没
-
Android中Intent传递对象的两种方法Serializable,Parcelable
Android中的传递有两个方法,一个是Serializable,另一个是Parcelable. Serializable是J2SE本身就支持的.而Parcelable是Android所特有的. 二者的使用场景和区别: 1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable. 2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC. 3)Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelab
-
Android中的Parcelable序列化对象
今天查阅资料,简单了解了一下Parcelable接口,它是android提供的序列化对象的接口,比java中的 Serializable高效些.通过这个接口序列化对象主要有两步: 1.实现public void writeToParcel(Parcel dest, int flags) {}方法: 2.实例化CREATOR public static final Parcelable.Creator<ParcelableImpl> CREATOR = new Parcelable.Creato
-
Android中的Bitmap序列化失败的解决方法
之前写了个User类(实现了Serializable接口),类变量里有Bitmap类型的头像图片,Bitmap导致序列化不成功,报 "android.graphics.Bitmap"相关错误 解决方法之一:把Bitmap对象替换成byte数组来表示间接表示图片,在需要Bitmap的时候再讲byte数组转换成Bitmap对象.这是因为byte数组和Bitmap之间的可以转化,实现也比较方便. 附byte数组与Bitmap的相互转换方法: Bitmap转换成byte数组 private b
-
解析Android中的Serializable序列化
1.为何要序列化? -- 把内存中的java对象能够在磁盘上持久保存 -- 通过网络传输对象 -- 通过RMI(Remote Method Invocation 远程过程调用)传输. 通过序列化可以把对象转化为与平台无关的二进制流,在重新使用前进行反序列化,重新转化为java对象. (远程过程调用针对分布式Java应用,对开发人员屏蔽不同JVM和网络连接等细节,是的分布在不同JVM上的对象似乎存在于一个统一的JVM中,能够方便的通讯) 2.如何让Java对象可以被序列化? 在java里只需让目标
-
利用Kotlin如何实现Android开发中的Parcelable详解
坑 先来看看 Android Studio 给的自动实现. 新建一个数据类,让它实现 Parcelable data class Worker( var id: Int, var name: String, var tasks: MutableList<Int> ) : Parcelable 使用 Android Studio 自带的 Add Parcelable Implementation ,然后你就得到了... data class Worker( var id: Int, var na
-
Android中的序列化浅析
序列化原因 序列化的原因基本可以归纳为以下三种情况: 1.永久性保存对象,保存对象的字节序列到本地文件中: 2.对象在网络中传递: 3.对象在IPC间传递. 序列化方法 在Android系统中关于序列化的方法一般有两种,分别是实现Serializable接口和Parcelable接口,其中Serializable接口是来自Java中的序列化接口,而Parcelable是Android自带的序列化接口. 上述的两种序列化接口都有各自不同的优缺点,我们在实际使用时需根据不同情况而定. 1.Seria
-
Android中传递对象的三种方法的实现
Android中,Activity和Fragment之间传递对象,可以通过将对象序列化并存入Bundle或者Intent中进行传递,也可以将对象转化为JSON字符串,进行传递. 序列化对象可以使用Java的Serializable的接口.Parcelable接口.转化成JSON字符串,可以使用Gson等库. 1.Serializable public class Author implements Serializable{ private int id; private String name
-
在Android中通过Intent使用Bundle传递对象的使用方法
Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法. 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable. 两种序列化方式的区别: 1.在使用内存的时候,Parcelable比Serializable性能高,推荐使用Parcelable类: 2.Ser
随机推荐
- Git安装和使用图文教程(分享)
- Linux学习第二篇 Java环境安装配置教程
- ISO7 二维码详细介绍及使用方法
- ADO.NET实现对SQL Server数据库的增删改查示例
- 比较简单实用的使用正则三种版本的js去空格处理方法
- Android中BroadcastReceiver(异步接收广播Intent)的使用
- 正确的PHP匹配UTF-8中文的正则表达式
- C语言切割多层字符串(strtok_r strtok使用方法)
- php不用GD库生成当前时间的PNG格式图象的程序第1/2页
- SQL Server 2012无法连接到WMI提供程序(Cannot connect to WMI provider)解决方案
- jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
- node.js中的fs.rename方法使用说明
- Android调用系统拍照裁剪图片模糊的解决方法
- Android自定义个性化的Dialog示例
- 享受便利的应用方式—Linux系统三则超酷技巧
- 解决Java J2EE乱码问题的方法
- CentOS 安装 Mongodb详解(在线和离线)
- 替换数据库内容
- 基于ubuntu16 Python3 tensorflow(TensorFlow环境搭建)
- re模块的正则匹配的表达式详解