I have the following implementation of a Parcelable
class:
public class DemoModel implements Parcelable {
private String para1;
private int para2;
public DemoModel(){}
protected DemoModel(Parcel in) {
para1 = in.readString();
para2 = in.readInt();
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(para1);
parcel.writeInt(para2);
}
//other methods
}
Is it important to maintain order while write/read to the parcel? And why?
Yes it does. Order of write variables is up to you and you can do it as you want, but you must read them in that same exact order. It will give you runtime crash if order will be different.
Why? Mechanism is blind, so it trust you to get it in right order.
Mostly for performance benefits, because it don't have to search for a specific element.
You can see in Parcelable
interface, that it creates array with size of a number of elements you put in parcel.
public interface Creator<T> {
/**
* Create a new array of the Parcelable class.
*
* @param size Size of the array.
* @return Returns an array of the Parcelable class, with every entry
* initialized to null.
*/
public T[] newArray(int size);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With