У меня есть приложение Android, которое общается с общедоступным API данных, вызывая URL-адреса.API возвращает XML, который описывает результаты поиска или подробные данные определенного набора данных.
В моем приложении я извлекаю эти данные и анализирую их в объектах Java, чтобы отобразить их, например, в ListView.
редактировать: просто чтобы было понятнее: в моем приложении вы можете искать музыкальных исполнителей и получать всю их дискографическую информацию.Я получаю список Releases
и отображаю их в ListView.(Никаких проблем здесь нет, потому что результаты одного и того же поискового запроса могут измениться в любую минуту, когда мне приходится получать эти данные каждый раз при выдаче поискового запроса).
Теперь у меня есть список со всеми LP, произведенными Beatles(например).Затем я могу щелкнуть один конкретный LP и просмотреть Details
, например, год выпуска и треклист.
То, что я хочу кешировать, - это данные Details
, и в настоящее время я думаю, что является лучшимспособ сделать это.Я подумал:
- Один раз получить данные XML и сохранить данные XML в базе данных SQLite (это будет означать, что мне придется анализировать данные каждый раз, когда я захочу получить к ним доступ снова).
- Один раз извлекает данные XML, анализирует их один раз и каким-то образом сохраняет сериализованный объект JavaObject в базе данных SQLite как ByteStream.(поэтому вся трудоемкая работа будет выполняться только один раз).
Какая, по вашему мнению, лучшая версия или, возможно, есть другой лучший способ добиться кэширования результатов?