Parcelable
– это интерфейс, который совместно с классом Parcel
реализует механизм сериализации в Android.Если класс реализует интерфейс
Parcelable
, поля класса сериализуются в методе writeToParcel()
.Также parcelable класс обязан иметь статическое ненулевое поле, названное
CREATOR
типа Creator<T>
.Интерфейс
Creator<T>
имеет два метода createFromParcel(parcel: Parcel): T
и newArray(size: Int): Array<T>
. Эти методы обратные writeToParcel()
и используются для чтения данных из Parcel
и создания объекта.Объект
Parcelable
записывается в контейнер Parcel
, который имеет метод marshall(): Array<Byte>
для представления объекта в виде массива байтов. Parcel
предназначен для передачи данных при межпроцессорной коммуникации. При изменении структуры объекта или реализации метода
writeToParcel()
байтовое представление, которое возвращается методом marshall()
, будет изменено. Поэтому строго не рекомендуется записывать его в персистентное хранилище.