Android 毕加索什么时候刷新图像缓存
我正在使用毕加索从服务器获取图像 这就是我正在使用的Android 毕加索什么时候刷新图像缓存,android,performance,android-layout,picasso,Android,Performance,Android Layout,Picasso,我正在使用毕加索从服务器获取图像 这就是我正在使用的 Picasso.with(getApplicationContext()).load(imageURL) .placeholder(R.drawable.card_loading) .fit().centerCrop() .into(imageView); 上面的代码应该缓存图像,但当我在服务器上更
Picasso.with(getApplicationContext()).load(imageURL)
.placeholder(R.drawable.card_loading)
.fit().centerCrop()
.into(imageView);
上面的代码应该缓存
图像,但当我在服务器上更新同一图像时,在不更改其URL
的情况下,它开始在应用程序上显示新图像,而它应该在应用程序上显示缓存的
旧图像
在一些设备上,它显示旧的图像,我关闭并重新启动应用多次,然后它开始在这些设备上显示新的图像
我的问题是毕加索在缓存中保留图像的时间有多长,如何从服务器或客户端增加该时间我不确定缓存文件的有效时间有多长。但您可以使用传入的http响应头更改缓存文件的有效性。基本上,您可以创建拦截器并添加具有“缓存控制”名称的新头
之后,您可以将其作为http客户端传递给毕加索谢谢
gokhan
我是否应该像这样将http客户端传递给毕加索Picasso-Picasso=new Picasso.Builder(context).downloader(new OkHttp3Downloader(client)).build()代码>
OkHttpClient httpClient = new OkHttpClient();
httpClient.networkInterceptors().add(new Interceptor(){
@Override
public Response intercept(Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder().header("Cache-Control", "max-age=" + (60 * 60 * 24 * 365)).build();
}
});