Sobes.tech
Junior — Middle

Kāda ir atšķirība starp interfeisiem Serializable un Parcelable, pārsūtot objektus Android?

sobes.tech AI

Atbilde no AI

Serializable un Parcelable ir interfeisi serializācijai objektu Android platformā, bet tiem ir dažādas īpašības:

  • Serializable: tas ir standarta Java interfeiss. To ir viegli īstenot (vienkārši jārealizē interfeiss), bet tas darbojas lēnāk un rada vairāk slodzes serializācijas laikā.

  • Parcelable: tas ir Android specifisks interfeiss, kas prasa manuālu metožu īstenošanu datu rakstīšanai un lasīšanai. Tas darbojas daudz ātrāk un efektīvāk, kas ir svarīgi datu pārsūtīšanai starp Android komponentiem (piemēram, caur Intent vai Bundle).

Parcelable lietošanas piemērs:

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

Tādēļ Android objektu pārsūtīšanai ieteicams izmantot Parcelable tā efektivitātes dēļ.