我们有一个包含多个ImageView的appwidget,需要每隔一段时间用图像更新一次。图像存储在Web上,url存储在我们旋转的ArrayList中。我们正在使用Picasso和一个具有缓存的OkHttp3 Downloader。即使在所有图片至少显示一次之后,我们的应用仍在使用根据设置应用中的Android内置数据使用选项中的数据。打开飞行模式时,小部件继续工作并显示所有图像,因此必须对其进行高速缓存。为什么即使图像被缓存,毕加索仍在使用数据? (我们已经排除了app / widget所有其他可能的数据消耗来源)
使用的图书馆:
应用程序对象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 :(得分:0)
回答我自己的任务,以防任何人因为类似的问题而遇到问题。
通过设计,HTTP请求被发送到服务器,该服务器以304状态响应,即使cache-age仍然有效,以便能够在服务器上测量图像显示的频率。我们在Android中看到的数据使用情况不是图像,而是很多标题。