隨筆 - 35  文章 - 21  trackbacks - 0
          <2011年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜


          android 中自定義的對象序列化的問題有兩個選擇一個是Parcelable,另外一個是Serializable。

          一 序列化原因:

          1.永久性保存對象,保存對象的字節(jié)序列到本地文件中;
          2.通過序列化對象在網(wǎng)絡(luò)中傳遞對象;
          3.通過序列化在進(jìn)程間傳遞對象。 

          二 至于選取哪種可參考下面的原則:

          1.在使用內(nèi)存的時候,Parcelable 類比Serializable性能高,所以推薦使用Parcelable類。
          2.Serializable在序列化的時候會產(chǎn)生大量的臨時變量,從而引起頻繁的GC。
          3.Parcelable不能使用在要將數(shù)據(jù)存儲在磁盤上的情況,因?yàn)镻arcelable不能很好的保證數(shù)據(jù)的持續(xù)性在外界有變化的情況下。盡管Serializable效率低點(diǎn), 也不提倡用,但在這種情況下,還是建議你用Serializable 。


          實(shí)現(xiàn):
          1 Serializable 的實(shí)現(xiàn),只需要繼承  implements Serializable 即可。這只是給對象打了一個標(biāo)記,系統(tǒng)會自動將其序列化。

          2 Parcelabel 的實(shí)現(xiàn),需要在類中添加一個靜態(tài)成員變量 CREATOR,這個變量需要繼承 Parcelable.Creator 接口。
          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();
               }
           }

           
          posted on 2011-09-16 16:16 lincode 閱讀(22138) 評論(0)  編輯  收藏 所屬分類: android
          主站蜘蛛池模板: 南开区| 富川| 乾安县| 岢岚县| 安陆市| 雅江县| 荆州市| 兰溪市| 瓦房店市| 江源县| 巍山| 屏东县| 永兴县| 清徐县| 平罗县| 莱阳市| 深州市| 兴山县| 车险| 浦城县| 改则县| 体育| 张家港市| 湾仔区| 汾阳市| 正蓝旗| 农安县| 泰宁县| 利辛县| 永吉县| 陈巴尔虎旗| 澄迈县| 五莲县| 白玉县| 海口市| 咸丰县| 滨州市| 彰武县| 泸西县| 甘南县| 深州市|