Кеширование ArrayList

Рейтинг: 0Ответов: 2Опубликовано: 11.10.2014

Всем привет. Есть получаемые по http ссылке данные в формате JSON. Данные записываются в ArrayList в потоковом режиме AsyncTask.
С точки зрения нагрузки хочется сделать некое кеширование ArrayList, чтобы при повторной загрузке приложения данные брались из кеша, а не с сервера (данные на сервере также кешируются). Кеш хорошо бы обновлять через несколько часов после первоначальной загрузки. Есть ли возможность реализовать такое? Куда смотреть? Где взять примеры?

При поиске кеширования ArrayList нашел Serializable. Не знаю, относится ли это к кешированию или нет. Попробовал использовать. Было две функции: read и write, но AsyncTask все равно срабатывал при ArrayList.isEmpty(). Может, плохие функции нашел. Хотелось бы увидеть примеры других функций.

Ответы

▲ 1
  1. Можно использовать библиотеку типо Volley, там есть кэширование.
  2. Можно самому написать сохранение запросов на диск/в базу. Или же просто в памяти держать в хэш-таблице. Останется только Обновление раз в час доделать.
▲ 1

Делал очень простой вариант - кэширование в HashMap, ключ - адрес, значение - респонс. Пример использования, зашел на фрагмент, проверил по ключу мапу - если есть респонс - вернул, если надо сделать рефреш - почистил мапу, записал новые данные, если есть пейджинг запросов - все добавляется в мапу.