java编程中,为了将对象的状态保存,需要将对象序列化。
在android中,序列化有两种方法可供选择,一个是java自带的序列化方法,只需实现Serializeable接口即可;另一个是android提供的方法,要实现Parcelable接口,并实现其中的一些方法,相对要复杂一些。
两者区别:
Parcelable消耗内存少,更加高效。
Serializeable更适合长期保存数据,和网络传输。
下面主要讲解Parceable的使用。
将想要序列化的对象的类实现Parcelable接口,并实现其中的方法:
public class MyParcelable implements Parcelable { int mData; public MyParcelable(int mData){ this.mData=mData; } public int describeContents() { return 0; } //将对象打包为Parcel类型对象 public void writeToParcel(Parcel out, int flags) { out.writeInt(mData); } //将Parcel对象解压为MyParcelable对象 public static final Creator<MyParcelable> CREATOR = new Creator<MyParcelable>() { public MyParcelable createFromParcel(Parcel in) { return new MyParcelable(in); } public MyParcelable[] newArray(int size) { return new MyParcelable[size]; } }; //从Parcel对象中读取数据 private MyParcelable(Parcel in) { mData = in.readInt(); } }
在MainActivity中添加到Intent中,并传递:
Intent intent = new Intent(MainActivity.this, SecActivity.class); Bundle bundle = new Bundle(); MyParcelable myParcelable = new MyParcelable(99); bundle.putParcelable("myParcelable", myParcelable); intent.putExtras(bundle); startActivity(intent);
在SecActivity中获取:
MyParcelable myParcelable=getIntent().getParcelableExtra("myParcelable");
原文:http://www.cnblogs.com/zhisuoyu/p/5249043.html