Sobes.tech
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 Intent ar Bundle).

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.