У меня есть фрагмент, который перечисляет «Семестры» следующим образом: он обращается к базе данных, генерирует массив, который затем преобразуется в представления через ListAdapter
.
В этом фрагменте есть кнопка добавления, которая открывает новое действие, в котором пользователь может создать новый семестр, который также вставляется в базу данных в том же самом действии.Эффективность Parcelable vs Чтение из базы данных
После создания семестра я, очевидно, хотел бы показать его, когда пользователь вернется к списку.
Для этого у меня есть 2 варианта:
- Послать созданный Семестр назад в качестве объекта для фрагмента. Проблема в том, что для меня требуется реализовать интерфейс
Parcelable
на большинстве моих классов, поскольку они вложены, что было бы очень утомительно. - Сделать список перечитанным семестра из базы данных и воссоздать представление с нуля.
Мой вопрос: какой путь был бы быстрее и эффективнее? Базы данных могут получать большие сверхурочные, но то же самое для объектов посылки, особенно когда они вложены, и есть List
с пользовательских объектов и т. Д., Что делает это решение более критичным.
В качестве альтернативы (это не очень хорошая идея, но она может быть надежной), вы можете использовать несериализующую шину событий, такую как Otto, чтобы передать POJO из деятельности create обратно в список. – Delyan
Спасибо. Это приложение в основном основано на пользовательском вводе, поэтому я не могу просмотреть, сколько строк будет иметь моя база данных. Но теперь, когда я думаю об этом, я не всегда ** нуждаюсь в вложенных объектах (например, мне не нужен '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'пользователя ''), поэтому Я мог бы просто установить их на «нуль» или что-то еще, и ускорить весь процесс еще больше. Кроме того, теперь, когда я думаю об этом, если «Parcel's» так быстр, они могут быть лучшим решением для меня, поскольку я бы хотел в какой-то момент перейти на онлайн-базу данных, что потребовало бы еще больше времени для запроса. – Asaf
Не используйте Посылки в качестве постоянного хранилища. Их формат меняется между Android-верионами, поэтому обновление может стереть все данные ваших пользователей. Что касается онлайн-базы данных, попробуйте «синхронизировать» ее со всеми клиентами, если это вообще возможно. Пользователи ненавидят запросы онлайн-источников, так как это очень медленно при мобильном соединении. – Delyan