Transferred from: http://www.blogjava.net/lincode/archive/2011/09/16/358805.html
Problems with custom object serialization in Android there are two choices one is parcelable and the other is serializable.
A serialization reason:
1. Permanently save the object, save the object's byte sequence to the local file;
2. Passing objects through a serialized object in the network;
3. Passing objects between processes through serialization.
Second, the following principles can be used to select which of these:
1. When using memory, parcelable analogy serializable high performance, so we recommend the use of Parcelable class.
2.Serializable generates a large number of temporary variables when serializing, causing frequent GC.
3.Parcelable cannot be used to store data on disk, because Parcelable does not guarantee the continuity of the data in the event of a change in the outside world. Although serializable efficiency is low, it is not advocated, but in this case, it is recommended that you use serializable.
Realize:
1 Serializable implementation, only need to inherit implements Serializable can. This simply marks the object and the system automatically serializes it.
2 Parcelabel implementation, you need to add a static member variable CREATOR in the class, this variable needs to inherit the Parcelable.creator interface.
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 ();
}
}
[Android] Serializable and Parcelable differences