毕加索什么时候刷新图像缓存

时间:2018-04-04 12:57:06

标签: android performance android-layout picasso

我正在使用毕加索从服务器获取图片。

这就是我正在使用的。

            Picasso.with(getApplicationContext()).load(imageURL)
                    .placeholder(R.drawable.card_loading)
                    .fit().centerCrop()
                    .into(imageView);

上面的代码应该是cache图片,但是当我在服务器上更新相同的图片而不更改其URL时,它会开始在应用上显示新图像,而它应该显示{{ 1}}应用中的旧图片。

在某些设备中,它显示较旧的图像,我关闭并重启应用程序多次,然后它也开始在这些设备上显示新图像。

我的问题是cached将图像保存在缓存中的时间有多长,以及如何从服务器或客户端增加图像

1 个答案:

答案 0 :(得分:0)

我不确定缓存文件有效多长时间。但您可以使用传入的http响应标头更改缓存文件的有效性。基本上,您可以创建拦截器并使用“Cache-Control”名称添加新标头。

 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();
        }
    });

之后,您可以将其作为http客户端传递给picasso