перенос данных через одну активность

У меня есть проблема. У меня на первой активити вписываются данные которые я через intent переношу на вторую активити. Потом я в 3 активити вписываю еще одни данные. Когда я перехожу на 4 активити у меня там должны находиться данные из 1 и 3 активити, я смог перенести данные из 3 активити, но из 1 активити интент не переносит данные, как я понял, он не может переносить данные через одну активити, то есть я не могу со 2 на 4 перекинуть данные. как я могу перенести данные с 2 на 4 активити, беж бд и синглотона ну и тд. Еще учитывается что у меня на 2 и 3 активностях есть интенты, как сделать так чтобы они не смешались и перенеслись данные?


Ответы (1 шт):

Автор решения: Vlad Orlinskas

Используйте класс контейнер, который наследует Serializable или Parcelable. В интент можно упаковать bundle. У bundle есть методы putSerializable или putParcelable. Ну и передавайте этот интент между своими активити, доставайте этот контейнер и заполняйте нужными данными. (Проще использовать сериализацию Serializable)

Вам нужно будет позаботиться о сохранении состояния этих данных (в любом варианте использования при повороте экрана вы потеряете данные, система может убить процесс). Вам нужно переопределить методы saveInstanceState и onRestoreInstanceState.

Мне кажется куда проще и качественнее использовать общую viewModel, которая будет хранить эти данные.

→ Ссылка