Sobes.tech
Junior — Middle

Care este diferența dintre interfețele Serializable și Parcelable în transmiterea obiectelor în Android?

sobes.tech AI

Răspuns de la AI

Serializable și Parcelable sunt interfețe pentru serializarea obiectelor în Android, dar au caracteristici diferite:

  • Serializable: este interfața standard Java. Este ușor de utilizat (trebuie doar să implementezi interfața), dar funcționează mai lent și generează mai mult overhead în timpul serializării.

  • Parcelable: este o interfață specifică Android care necesită implementarea manuală a metodelor pentru scrierea și citirea datelor. Funcționează mult mai rapid și mai eficient, ceea ce este important pentru transferul obiectelor între componentele Android (de exemplu, prin Intent sau Bundle).

Exemplu de utilizare a Parcelable:

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

Prin urmare, pentru transferul obiectelor în Android, este recomandabil să folosiți Parcelable datorită performanței sale.