2016-12-26 11 views
0

У нас есть приложение, содержащее несколько ImageView, которые нужно обновлять с помощью изображения каждый раз в то время. Изображения хранятся в Интернете, а URL-адреса хранятся в массиве ArrayList, который мы поворачиваем. Мы используем Picasso с OkHttp3 Downloader, у которого есть кеш. Даже после того, как все изображения были показаны по крайней мере, как только наше приложение все еще использует данные в соответствии с настройкой Android для использования данных в приложении настроек. При включении режима полета виджет продолжает работать и отображает все изображения, поэтому их нужно кэшировать. Почему Picasso все еще использует данные, даже если изображения кэшируются? (Мы уже исключили все другие возможные источники потребления данных с помощью приложения/виджета)Picasso использует данные для кэшированных изображений в appwidget

библиотеки:

  • com.squareup.okhttp3: okhttp: 3.2.0
  • com.squareup .picasso: Picasso: 2.5.2
  • com.jakewharton.picasso: picasso2-okhttp3-загрузчик: 1.1.0

инициализации Пикассо в Object Application OnCreate():

Picasso.Builder picassoBuilder = new Picasso.Builder(this) 
     .downloader(new OkHttp3Downloader(this)) 
     .indicatorsEnabled(true) 
     .loggingEnabled(true); 
    Picasso picasso = picassoBuilder.build(); 
    try { 
     Picasso.setSingletonInstance(picasso); 
    } catch(IllegalStateException e) { 
     UsageTracker.handleException(e); 
    } 

Загрузка изображения из службы:

public static void updateImage(Context context, RemoteViews remoteViews, int resourceId, String url) { 
    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); 
    int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, WidgetProvider.class)); 
    Picasso.with(context).load(url).into(remoteViews, resourceId, appWidgetIds); 
} 

Кроме того, кто-нибудь знает, если это нормально, что показатели и протоколирование не работают RemoteViews?

+0

Вы пытались использовать «setIndicatorsEnabled» Picasso, чтобы убедиться, что изображения не загружаются из кеша? – akash93

+0

Да, но нет указателей, появляющихся в appwidget. Они действительно работают в самом приложении. Должны ли они работать в RemoteViews для приложений? – Sander

+0

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

ответ

0

Отвечая на мои собственные задания, если кто-то наткнулся на вопрос с аналогичной проблемой.

По дизайну HTTP-запрос отправляется на сервер, который отвечает статусом 304, даже если кэш-возраст по-прежнему действителен, чтобы иметь возможность измерять на сервере частоту отображения изображения. Использование данных, которые мы видели в Android, не было изображениями, а большим количеством заголовков.

 Смежные вопросы

  • Нет связанных вопросов^_^