У меня есть фотогалерея в моем приложении, не слишком отличающаяся от фотографий Facebook. У меня есть две основные взгляды:Как передавать большие данные между действиями?
PhotoGalleryActivity
бесконечный список фотографий показаны в хронологическом порядке. При нажатии на нее вы попадаете в подробный вид.PhotoDetailView
- это в основном пейджер с фотографиями и для каждой фотографии, он также показывает пользователя, который его загрузил. Нажав на пользователя, вы перейдете к другомуPhotoGalleryActivity
, в котором перечислены все фотографии, которые пользователь загрузил.
Чтобы показать PhotoDetailActivity
, мне нужно передать список фотографий с PhotoGalleryActivity
к нему. Фотообъект - это просто список URL-адресов и пользовательский объект.
Я изучил различные возможные решения, но ни один из них не соответствовал моему счету. Вот те, которые я нашел, и поэтому они не будут работать (пожалуйста, поправьте меня, если я ошибаюсь):
Намерение: Это не работает, так как данные могут получить большой (1mb это предел для прохождения данные через намерение). Мне может потребоваться передать 10 000 фотографий или 100 000 фотографий. И из-за этого я не могу даже сохранить его во время изменений ориентации (я не прав?).
Singleton + теги: Поскольку пользователь может сохранить веб-кратному
PhotoGalleryActivity
, я могу использовать теги так, чтоPhotoDetailActivity
может просто взять список фотографий с помощью тега, которыйPhotoGalleryActivity
проходит через Intent. Но проблема возникает, когда приложение убито. Синглтон теряет данные, поэтому я не могу это сделать. (Я чувствую, что мне может не хватать обходного пути с этим прецедентом).База данных: я мог бы сохранить их в базе данных, но это становится сложно поддерживать, так как первые
PhotoGalleryActivity
показывают фотографии от всех пользователей. Затем я нажимаю на фотографию, нажимаю на пользователя, который загрузил фотографию, и начал просматривать фотографии пользователей. Теперь, когда я возвращаюсь к первомуPhotoGalleryActivity
, хронологически последняя фотография в базе данных теперь является последней фотографией этого пользователя, поэтому мои данные становятся испорченными. (Я могу придумать обходные пути для этого, но похоже, что он может быстро запутаться).
Я надеялся, что у кого-то есть опыт с этим и есть идея для решения.
Я не понимаю, почему подход к базе данных является проблемой. Если вас беспокоят временные метки, вы можете просто отсортировать какое-то значение, чтобы получить заказ –
, что вы подразумеваете под этим? – Sree
Любая популярная база данных имеет некоторый порядок или сортировку ... Что вы подразумеваете под «хронологически последней фотографией в базе данных, теперь является последней фотографией этого пользователя, поэтому мои данные становятся испорченными» –