Junior — Middle
Jaký je rozdíl mezi rozhraními Serializable a Parcelable při přenosu objektů v Androidu?
sobes.tech AI
Odpověď od AI
Serializable a Parcelable jsou rozhraní pro serializaci objektů v Androidu, ale mají různé vlastnosti:
-
Serializable: je standardní rozhraní Javy. Je snadné ho použít (stačí implementovat rozhraní), ale funguje pomaleji a při serializaci vytváří více režie.
-
Parcelable: je specifické rozhraní Androidu, které vyžaduje ruční implementaci metod pro zápis a čtení dat. Funguje mnohem rychleji a efektivněji, což je důležité při přenosu objektů mezi komponentami Androidu (například přes
IntentneboBundle).
Příklad použití Parcelable:
public class User implements Parcelable {
private String name;
private int age;
protected User(Parcel in) {
name = in.readString();
age = in.readInt();
}
public static final Creator<User> CREATOR = new Creator<User>() {
@Override
public User createFromParcel(Parcel in) {
return new User(in);
}
@Override
public User[] newArray(int size) {
return new User[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
}
Proto, při přenosu objektů v Androidu je vhodnější používat Parcelable kvůli jeho výkonu.