Serializable和Parcelable
Serializable(接口)
通过intent 的bundle传递参数
Bundle bundle = new Bundle();
bundle.putSerializable(IntentKeys.IMG_ARR_ENVIR_IMG, mArrListEnvir_img);
intent.putExtras(bundle);
mListEnvir = (ArrayList<EnvirImg>) (bundle
.getSerializable(IntentKeys.IMG_ARR_ENVIR_IMG));
Parcelable(接口)
通过intent 的bundle传递参数
Bundle bundle = new Bundle();
bundle.putParcelable(IntentKeys.IMG_ARR_ENVIR_IMG, mArrListEnvir_img);
intent.putExtras(bundle);
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
public class UploadPic implements Parcelable{
private String id;
private String sdPath;
private String webPath;
private Bitmap bmp;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSdPath() {
return sdPath;
}
public void setSdPath(String sdPath) {
this.sdPath = sdPath;
}
public String getWebPath() {
return webPath;
}
public void setWebPath(String webPath) {
this.webPath = webPath;
}
public Bitmap getBmp() {
return bmp;
}
public void setBmp(Bitmap bmp) {
this.bmp = bmp;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeString(id);
parcel.writeString(sdPath);
parcel.writeString(webPath);
bmp.writeToParcel(parcel, 0);
}
public static final Parcelable.Creator<UploadPic> CREATOR = new Creator<UploadPic>() {
public UploadPic createFromParcel(Parcel source) {
UploadPic pic = new UploadPic();
pic.id = source.readString();
pic.sdPath = source.readString();
pic.webPath = source.readString(); //传递string数据
pic.bmp = Bitmap.CREATOR.createFromParcel(source);//传递bitmap数据
return pic;
}
public UploadPic[] newArray(int size) {
return new UploadPic[size];
}
};
}
Parcelable比Serializable效率高
parcelable也不适合传输大量图片数据
android.os.TransactionTooLargeException 不适合传大量数据尤其bitmap intent跳转的时候无缝传递数据pacicl
导致原因是:Binder传输的数据太大
如果Binder的参数或返回值太大,不适合的事务缓冲区,然后调用将失败,并将被抛出TransactionTooLargeException。
解决方法:
不要将大量数据传入Binder
转载于:https://blog.51cto.com/lyp634959848/1335606
Serializable和Parcelable相关推荐
- 包含c语言的序列化字符,Android Serializable与Parcelable原理与区别
一.序列化.反序列化是什么? (1) 名词解释 对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程. 对象的反序列化:把字节序列恢复为Java对象的过程. (2) 序列化详细解释 ...
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable] 在Android中的不同Activity之间传递对象,我们可以考虑采用Bun ...
- [android] Serializable 和 Parcelable 区别
android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable. 一 序列化原因: 1.永久性保存对象,保存对象的字节序列到本地文件中: 2.通过序 ...
- Android Serializable与Parcelable原理与区别
2019独角兽企业重金招聘Python工程师标准>>> 一.序列化.反序列化是什么? (1) 名词解释 对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程. 对 ...
- android对象序列化的方法,Android 进阶-两种序列化方式 Serializable 和 Parcelable
[导读]序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态 ...
- 序列化Serializable、Parcelable
序列化的概念: 所谓序列化就是将对象变成二进制流,便于存储和传输. 为什么要序列化和反序列化? 当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本.图片.音频.视频等, 而这些数据都会以二 ...
- java parcelable_Java Serializable和Parcelable详解及实例代码
对 Serializable和Parcelable理解 1.首先他们两个接口都是为了实现对象的序列化,使之可以传递,所谓序列化就是将对象信息装换成可以存储的介质的过程. 2.Serializable是 ...
- android 保存 parcelable对象,Android 使用序列化Serializable和Parcelable
Android 序列化Serializable和Parcelable使用和区别 一:Serializable 1.什么是序列化 将一个类对象转换成可存储,可传输状态的过程. 2.什么是Serializ ...
- Android中的Serializable和Parcelable序列化
Serializable和Parcelable接口都可以完成对象的序列化过程,在Android中当我们需要通过Intent和Binder传输数据时,我们要传输的对象就需要使用Serializable和 ...
- java parcelable list_Android中Serializable和Parcelable序列化对象详解
学习内容: 1.序列化的目的 2.Android中序列化的两种方式 3.Parcelable与Serializable的性能比较 4.Android中如何使用Parcelable进行序列化操作 5.P ...
最新文章
- JVM运行时数据区---堆(堆内存)
- tf.keras.losses.SparseCategoricalCrossentropy() 稀疏交叉熵 损失函数 示例
- 松果出行CTO朱蓝天做客《智慧Talk》,解开共享电单车产研密码
- ElementUI改变el-table的表头颜色以及各行的颜色
- ZOJ Problem Set - 1730 Crazy Tea Party
- 百度网页移动端html,百度移动端开始用网站品牌名代替网址显示
- vs 中自带的代码混淆器 Dotfuscator (图)
- 洛谷P1007 独木桥(贪心)
- sql表达式_SQL表达式
- debian 修改apache2 https 端口为11443
- mac降级safari_如何在Mac上的Safari中将网页另存为PDF
- linux测试网络带宽 360,Linux版360浏览器提示此为beta测试版本,已超过测试时间3个月的处理...
- 黑客入侵香港中文大学网 师生资料被盗
- 如何画好业务架构图。
- java 实现word文档合并(支持文档中有图片和表格)
- 【技美百人计划】图形 4.2 SSAO算法 屏幕空间环境光遮蔽(&HBAO)
- Konga arm64 安装
- Unity打包exe文件流程
- QMenu 设置菜单图标 生成菜单树
- CCD自动对位COG绑定设备应用案例
热门文章
- 【SSH网上商城项目实战19】订单信息的级联入库以及页面的缓存问题
- 基于Docker搭建Percona XtraDB Cluster数据库集群
- 变动性算法源代码分析与使用示例(copy_backward、 transform、 replace_copy_if 等)
- 解读Facebook CAN:如何给人工智能赋予艺术创作的力量
- 程序员制作出价值5亿外卖神器却不能取消订单,你知道吗?
- 真希望永远用不到这些代码
- python 异常处理模块_扩展Python模块系列(五)----异常和错误处理
- timertask run函数未执行_图执行模式下的 TensorFlow 2
- Linux基础监控小工具nmon
- saltstack 主题说明