Кэширование объектов, проанализированных из XML в Android - PullRequest
2 голосов
/ 10 марта 2011

У меня есть приложение Android, которое общается с общедоступным API данных, вызывая URL-адреса.API возвращает XML, который описывает результаты поиска или подробные данные определенного набора данных.

В моем приложении я извлекаю эти данные и анализирую их в объектах Java, чтобы отобразить их, например, в ListView.

редактировать: просто чтобы было понятнее: в моем приложении вы можете искать музыкальных исполнителей и получать всю их дискографическую информацию.Я получаю список Releases и отображаю их в ListView.(Никаких проблем здесь нет, потому что результаты одного и того же поискового запроса могут измениться в любую минуту, когда мне приходится получать эти данные каждый раз при выдаче поискового запроса).

Теперь у меня есть список со всеми LP, произведенными Beatles(например).Затем я могу щелкнуть один конкретный LP и просмотреть Details, например, год выпуска и треклист.

То, что я хочу кешировать, - это данные Details, и в настоящее время я думаю, что является лучшимспособ сделать это.Я подумал:

  • Один раз получить данные XML и сохранить данные XML в базе данных SQLite (это будет означать, что мне придется анализировать данные каждый раз, когда я захочу получить к ним доступ снова).
  • Один раз извлекает данные XML, анализирует их один раз и каким-то образом сохраняет сериализованный объект JavaObject в базе данных SQLite как ByteStream.(поэтому вся трудоемкая работа будет выполняться только один раз).

Какая, по вашему мнению, лучшая версия или, возможно, есть другой лучший способ добиться кэширования результатов?

1 Ответ

2 голосов
/ 10 марта 2011

сериализация объекта была бы быстрым решением, но это не могло быть эффективным решением.Каждый раз вам нужно загружать весь объект, тогда как в этом случае, если вы храните свой набор данных в базе данных, использование обработки данных курсором / запросом будет более плавным.

CursorAdapter позволит вам подключить курсор базы данных непосредственно к списку в графическом интерфейсе.Я бы предложил вам использовать подход базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...