2015-07-29 2 views
0

Я использую Пикассо библиотеки (2.5.2) с OkHttpDownloader (2.4.0) в качестве загрузчикаПикассо выборки() и получить() с OkHttpDownloader

OkHttpClient myOkHttpClient = new OkHttpClient(); 
myPicassoInstance = new Picasso.Builder(context).downloader(new OkHttpDownloader(myOkHttpClient)).build(); 
Picasso.setSingletonInstance(myPicassoInstance); 

в RemoteViewsService.RemoteViewsFactory для заполнения сетки изображений упреждающая выборка выборки() в onDataSetChanged() метод

Picasso.with(mContext) 
.load(picture) 
.resize(Math.round(160 * displayMetrics.density), Math.round(90 * displayMetrics.density)) 
.centerCrop() 
.fetch(); 

и получать от ГЮТ() в getViewAt метод()

Picasso.with(mContext) 
.load(itemsList.get(position).getUrlImage()) 
.resize(Math.round(160 * displayMetrics.density), Math.round(90 * displayMetrics.density)) 
.centerCrop() 
.get()); 

Ну, включив запись в экземпляр Picasso, я вижу, что сначала запускает fetch() загружает из сети и записывает записи в кеш, а get() загружается из кеша. Во второй раз, обновляя содержимое сетки, fetch() загружает из памяти и get() из кеша. И это нормально.

Но когда процесс замирает и перезапускается, fetch() перезагружается для загрузки из сети, игнорируя записи кэша, почему?

UPDATE Я попытался без OkHttpDownloader (2.4.0), как загрузчик и теперь получать() загружает правильный первый раз от сети (если изображение оленья кожа существовать в кэше) или с диска (если изображение существует в кэше), сохраняя память до тех пор, пока процесс не погибнет.

myPicassoInstance = new Picasso.Builder(context).build(); 
Picasso.setSingletonInstance(myPicassoInstance); 

то есть какой-то конфликт между библиотекой Пикассо (2.5.2) и (2.4.0 OkHttpDownloader)?

ОБНОВЛЕНИЕ 2

  • Пытался с OkHttpDownloader (2.3.0) в качестве загрузчика: такой же проблемы
  • опробован UrlConnectionDownloader, как загрузчик: такой же проблема
  • пробовали использовать в() в адаптере : same problem

ответ