透過Intent傳遞資料


Serializable vs Parcelable 比較


實作Parcelable interface

public class MyData implements Parcelable {
    private String firstName;
    private String lastName;

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel destination, int flags) {
        destination.writeString(firstName);
        destination.writeString(lastName);
    }
}
public static final Creator<MyData> CREATOR = new Creator<MyData>() {
    @Override public MyData createFromParcel(Parcel source) { return new MyData(source); }
    @Override public MyData[] newArray(int size) { return new MyData[size]; }
};

private MyData(Parcel source) {
    firstName = source.readString();
    lastName = source.readString();
}

public class MyData implements Parcelable {
    private String name;
    private int age;

    @Override
    public void writeToParcel(Parcel destination, int flags) {
        destination.writeString(name);
        destination.writeInt(age);
    }

    private MyData(Parcel source) {
        age = source.readInt();
        name = source.readString();
    }
    ...
}
Throwing OutOfMemoryError: "Failed to allocate a 220204076 byte allocation with 4194304 free bytes and 33MB until OOM"

我就順序錯了給我OOM是哪招XDD 請小心!!!


以上是實作一個簡單的Parcelable,在範例程式裡面還有一些其他方法運用:


參考連結

http://developer.android.com/reference/android/os/Parcelable.html

http://www.developerphil.com/parcelable-vs-serializable/

http://blog.prolificinteractive.com/2014/07/18/why-we-love-parcelable/