Serializable和Parcelable-创新互联

Serializable(接口)

成都一家集口碑和实力的网站建设服务商,拥有专业的企业建站团队和靠谱的建站技术,10多年企业及个人网站建设经验 ,为成都1000+客户提供网页设计制作,网站开发,企业网站制作建设等服务,包括成都营销型网站建设,高端网站设计,同时也为不同行业的客户提供网站制作、成都网站设计的服务,包括成都电商型网站制作建设,装修行业网站制作建设,传统机械行业网站建设,传统农业行业网站制作建设。在成都做网站,选网站制作建设服务商就选创新互联建站

通过intent 的bundle传递参数

Bundle bundle = new Bundle();
     bundle.putSerializable(IntentKeys.IMG_ARR_ENVIR_IMG, mArrListEnvir_img);
     intent.putExtras(bundle);

mListEnvir = (ArrayList) (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 CREATOR = new Creator() {
           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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:Serializable和Parcelable-创新互联
分享地址:http://azwzsj.com/article/dpogid.html