Sobes.tech
Junior — Middle

Milline on erinevus Serializable ja Parcelable liideste vahel objektide edastamisel Androidis?

sobes.tech AI

Vastus AI-lt

Serializable ja Parcelable on Androidis objektide serialiseerimise liidesed, kuid neil on erinevad omadused:

  • Serializable: on Java standardliides. Seda on lihtne kasutada (piisab liidese rakendamisest), kuid see töötab aeglasemalt ja tekitab rohkem ülekoormust serialiseerimise ajal.

  • Parcelable: on Android-spetsiifiline liides, mis nõuab käsitsi meetodite rakendamist andmete kirjutamiseks ja lugemiseks. See töötab palju kiiremini ja tõhusamalt, mis on oluline objektide edastamisel Androidi komponentide vahel (näiteks Intent või Bundle kaudu).

Parcelable kasutamise näide:

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

Seetõttu on Androidis objektide edastamiseks soovitatav kasutada Parcelable, kuna see on tõhusam.