Достаточно часто бывает ситуация, когда нам нужно передать данные между компонентами (например, между двумя активити или даже приложениями). И один из популярных способов сделать это — Parcelable. Этот интерфейс позволяет записать объекты в Parcel, который затем может быть передан между компонентами. Но есть большая проблема, что при изменении структуры данных в Parcelable могут возникнуть проблемы с совместимостью. И недавно я обнаружила метод setDataPosition. setDataPosition — это такой метод класса Parcel, который устанавливает текущую позицию чтения/записи. Благодаря этому методу мы можем перемещаться по данным внутри Parcel и читать/записывать значения в нужных местах (https://developer.android.com/reference/android/os/Parcel#setDataPosition(int)). Теперь представим, что нам нужно добавить новый параметр id для котика. Мы добавляем новый параметр id и изменяем методы writeToParcel и createFromParcel, добавляя туда writeInt и readInt: Если мы попробуем прочитать котика, сохранен
Немного про Parcel и совместимость (setDataPosition)
22 июня 202422 июн 2024
41
1 мин