Sobes.tech
Junior — Middle

Mi a különbség a Serializable és a Parcelable interfészek között az Androidban az objektumok átadásakor?

sobes.tech MI

Válasz az MI-től

A Serializable és a Parcelable interfészek az objektumok sorosítására Androidban, de különböző jellemzőkkel rendelkeznek:

  • Serializable: a Java szabványos interfésze. Egyszerű használni (csak implementálni kell az interfészt), de lassabb és több overhead-t generál a sorosítás során.

  • Parcelable: egy Android-specifikus interfész, amely manuális implementációt igényel az adatok írására és olvasására. Sokkal gyorsabb és hatékonyabb, ami fontos az objektumok közötti átadásnál Android komponensek között (pl. Intent vagy Bundle segítségével).

Parcelable használatának példája:

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);
    }
}

Ezért az Androidban objektumok átadásához a Parcelable használata ajánlott a jobb teljesítmény miatt.