日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Serializable和Parcelable

發(fā)布時間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Serializable和Parcelable 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Serializable(接口)

通過intent?的bundle傳遞參數(shù)

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傳遞參數(shù)

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數(shù)據(jù)
????????????pic.bmp?=?Bitmap.CREATOR.createFromParcel(source);//傳遞bitmap數(shù)據(jù)
?????????????return?pic;?
???????????}?
???????????public?UploadPic[]?newArray(int?size)?{?
???????????????return?new?UploadPic[size];?
???????????}?
???????};?
}

?

Parcelable比Serializable效率高

parcelable也不適合傳輸大量圖片數(shù)據(jù)

android.os.TransactionTooLargeException?不適合傳大量數(shù)據(jù)尤其bitmap?intent跳轉(zhuǎn)的時候無縫傳遞數(shù)據(jù)pacicl
導(dǎo)致原因是:Binder傳輸?shù)臄?shù)據(jù)太大
如果Binder的參數(shù)或返回值太大,不適合的事務(wù)緩沖區(qū),然后調(diào)用將失敗,并將被拋出TransactionTooLargeException。
解決方法:
不要將大量數(shù)據(jù)傳入Binder

?

轉(zhuǎn)載于:https://blog.51cto.com/lyp634959848/1335606

總結(jié)

以上是生活随笔為你收集整理的Serializable和Parcelable的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。