2013-09-16 2 views
1

Мое приложение должно работать не только в режиме онлайн, но и в автономном режиме. Когда у моего приложения есть подключение к Интернету, он будет загружать данные (анализировать с Json) и сохранять в базу данных SQLite. Если я отключу интернет, он получит данные из SQLite для отображения. Мои проблемы - это то, как я знаю, когда происходит обновление данных или новые данные с сервера. Я хочу обновлять текущие записи и добавлять новые записи при изменении данных.Android - Как кэшировать Json с помощью SQLite

Ex:

Первая нагрузка - нагрузка 50 записей >>> сохранить SQLite

Вторая нагрузка - нагрузка 30 записей (20 текущих записей изменений & 15 новых записей)

Всего - 65 записей в SQLite

Спасибо за любую помощь

+0

установить первичный или составной ключ на таблицу и вставить данные с заменой на конфликты, он заменит старые данные последними –

+0

Я просто хочу получить новые или изменить данные. Не заменять старые данные новыми данными –

ответ

2

Это звучит как больше вопроса сервера API, чем ничего. Ваше приложение должно знать, когда оно отключилось (мы назовем это lastCommTime). Когда приложение возвращается в Интернет, вам необходимо запросить сервер для 1) записей, которые были обновлены с lastCommTime, и 2) записей, которые были вставлены с lastCommTime.

Как вы справляетесь с этим на бэкэнде - это дизайнерское решение, которое вам нужно будет сделать. Многие веб-приложения имеют поля created_at и updated_at.

+0

Я создал новые записи в поле set created in my database. Но не знаю, какая запись изменилась. Я думал, используя обновленный. Это не работает, потому что есть много записей и время не синхронизировано. –

+0

Решение Andy звучит разумно, просто запрашивает таблицу с lastCommTime, которую вы знаете, когда обновляете таблицу после ее загрузки, и вы получите обновленные и новые строки. Теперь Если вы хотите разделить обновленные и вновь добавленные строки, то вы должны указать поля created_at и updated_at. – Pankaj

Смежные вопросы