Junior — Middle
Kuo skiriasi Serializable ir Parcelable sąsajos perduodant objektus Android?
sobes.tech AI
Atsakymas iš AI
Serializable ir Parcelable yra sąsajos objektų serializacijai Android'e, tačiau jos turi skirtingas savybes:
-
Serializable: tai standartinė Java sąsaja. Ją lengva įgyvendinti (tiesiog įgyvendinkite sąsają), tačiau ji veikia lėčiau ir sukelia daugiau perkrovos serializacijos metu.
-
Parcelable: tai Android specifinė sąsaja, kuri reikalauja rankiniu būdu įgyvendinti metodus duomenų rašymui ir skaitymui. Ji veikia daug greičiau ir efektyviau, kas svarbu duomenų perdavimui tarp Android komponentų (pvz., per
IntentarBundle).
Parcelable naudojimo pavyzdys:
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);
}
}
Todėl Android'e objektų perdavimui rekomenduojama naudoti Parcelable, nes jis yra efektyvesnis.