Я новичок в работе с Volley и с кэшированием: P. Хотя я уже просмотрел ряд статей и сообщений, связанных с кэшированием изображений с помощью Volley, я до сих пор не понимаю, какой лучший/предпочтительный способ кэширования изображений с помощью Volley. Кэширование диска или памяти? Какую поддержку уже предоставляет Volley и как (связанную с поддержкой кэширования L1 и L2)? В моем случае я использую NetworkImageView, чтобы заполнить представление списка изображениями, которые будут получены из сети. Заранее спасибо!
Залп: кэширование изображений
Ответы (1)
Для кэширования изображений volley ожидает, что вы предоставите реализацию кэш памяти для изображений. Этот кеш используется во время работы приложения для более быстрой загрузки с использованием памяти.
Не связанный конкретно с изображениями, Volley имеет свой собственный дисковый кэш, который он использует для кэширования КАЖДОГО ответа, который он получает, со стратегией кэширования по умолчанию в соответствии с заголовками кэша HTTP-ответ.
Если изображения, которые вы загружаете в свое приложение, имеют заголовки кэша, они будут кэшироваться в соответствии с ними на диске, иначе не будет.
Если вы недовольны этой стратегией и хотите форсировать дисковое кэширование, вам придется отредактировать/добавить небольшой код, изменяющий стратегию кэширования. Есть много способов добиться этого, одним из которых является предоставление вашей собственной реализации для разбора заголовков HTTP. Взгляните на HttpHeaderParser
в источнике Volley.
ImageLoader
ожидается кеш памяти. Если вы хотите принудительно кэшировать, вы должны сделать именно это - отредактируйте исходный код Volley, чтобы либо анализировать каждый заголовок HTTP, как если бы он имел заголовок кеша, либо изменить проверку записей в кеше. Кроме того, если мой ответ помог, я был бы признателен, если бы вы его приняли, спасибо.
- person Itai Hanski; 21.10.2013