2016-03-02 5 views
1

Я реализовал рутину, которая сохраняет данные из json в базу данных, а после этого, когда пользователь переходит в автономный режим, он может видеть все данные. но picasso не загружает изображения после первого запуска. но когда я запускаю приложение дважды в онлайн-режиме, после этого пикассо может загружать изображения из кеша в автономном режиме. (он должен кэшировать изображения на первом запуске, но это не работает)picasso не кэширует для первой загрузки, но это нормально во второй раз

оценивает любое предложение

ответ

3

https://stackoverflow.com/a/23281195/3664628

Пикассо не имеет дискового кэша. Он делегирует любой HTTP-клиент, который вы используете для этой функции (полагаясь на семантику кеша HTTP для управления кешем). Из-за этого поведение, которое вы ищете, приходит бесплатно ...

-1

Основная причина может заключаться в том, что другие изображения вытесняют старые из кеша из-за их размера. Вы можете загрузить меньшие версии или увеличить размер кэш-памяти, как этот

Picasso p = new Picasso.Builder(context) 
.memoryCache(new LruCache(Size)) 
.build(); 

Если вы не хотите, чтобы сохранить в кэше, вы можете дополнительно исключать, что тоже с помощью политики памяти.

Picasso пытается сначала получить запрошенное изображение из памяти. Если вы хотите, чтобы Picasso пропустил этот шаг, вы можете позвонить memoryPolicy(MemoryPolicy policy, MemoryPolicy... additional) в ваш создатель запроса Picasso. MemoryPolicy - это простое перечисление с двумя значениями: NO_CACHE и NO_STORE. как этот

Picasso 
.with(context) 
.load(UsageExampleListViewAdapter.eatFoodyImages[1]) 
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE) 
.into(imageViewFromDisk); 

Дополнительный источник: futurestud.io

+0

ваш ответ полностью против того, что я хочу. Я хочу, чтобы кэш диска в моем приложении –

+0

@masoudvali это не против вашего вопроса bro. Ниже приведенная дополнительная информация, прочитайте первую строку, и есть информация, почему ваш образ не может быть кэширован. Возможно, это связано с тем, что изображение слишком велико или размер кэша слишком мал. Я четко определил это. –