Как кэшировать данные списка в android?

У меня есть Listview, который содержит 100 строк. Это первый раз, когда я загружаю все данные из Webservice. Я хочу кэшировать эти данные, чтобы, если я открою эту страницу, я должен получить ее из кеша не из Webservice. Как я могу это сделать?

Если ваши данные достаточно просты, просто сохраните их в массиве и используйте что-то вроде ArrayAdapter для привязки данных к списку.

Если ваши данные более сложны, лучше всего использовать таблицу SQLite. В этом случае используйте что-то вроде SimpleCursorAdapter .

Вы можете хранить данные в виде файла JSON во внутреннем хранилище вашего приложения. Я считаю, что это гораздо более простой подход, так как вы легко можете сопоставить классы JSON с Model, используя библиотеку Gson . Вы обычно будете следовать этому подходу, если данные, которые у вас есть, не будут «обновлены», как вы могли бы сделать в традиционной базе данных (хотя вы все еще можете обновлять данные JSON, иначе).

Сохраните данные в таблице SQLite и используйте это как кеш в следующий раз, проверьте, существует ли эта таблица. Если в таблице существует запрос, который вместо webz 🙂

Im предполагается, поскольку вы используете термин cache – данные истекают каждые x минут / часов

Если данные изменяются каждые несколько минут, просто сохраните ответ веб-службы в некоторой локальной переменной (если ее нужно использовать только для одной активности в списке)

Или сохранить его в глобальной переменной (расширьте класс приложения и выведите здесь общедоступную переменную)

Если ваши данные меняются каждые несколько часов, тогда лучше всего сохранить их в sqlite (если ваши данные требуют сложного запроса / объединения и т. Д.),

Или просто сохранить его как файл (в формате json или xml) и проверить этот файл и истечь, и, если он все еще действителен, просто расшифруйте его, а не снова вызовите ваш веб-сервис