У нас есть приложение, содержащее несколько 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?
Вы пытались использовать «setIndicatorsEnabled» Picasso, чтобы убедиться, что изображения не загружаются из кеша? – akash93
Да, но нет указателей, появляющихся в appwidget. Они действительно работают в самом приложении. Должны ли они работать в RemoteViews для приложений? – Sander
Я не вижу причин, почему они не должны быть ... Это, как говорится, я сам не проверял. Может быть, стоит открыть вопрос, если это не так – akash93