首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存图像一周

缓存图像一周
EN

Stack Overflow用户
提问于 2019-07-16 19:13:59
回答 1查看 137关注 0票数 1

我正在开发一个Android应用程序,其中显示了大量的图像。我使用Picasso来加载图像并使用其默认的缓存策略。现在我想要的是修改缓存,假设如果用户今天看到了一张图像,它将在缓存中保留7天,每次用户访问该特定页面时,毕加索都会从缓存中加载图像,7天后图像将从缓存中清除,并再次进行新的缓存。谁来帮帮我,我迷路了。

代码语言:javascript
复制
private void PicassoConfig() {
    Picasso.Builder builder = new Picasso.Builder(this);
    builder.downloader(new OkHttp3Downloader  (this, Constants.MAX_DISK_CACHE_SIZE));
    Picasso built = builder.build();
    Picasso.setSingletonInstance(built);
}

然后

代码语言:javascript
复制
Picasso.get().load(cardList.get(i).
   getImage()).noFade().priority(Picasso.Priority.HIGH).
   placeholder(R.drawable.placehoder_image).
   transform(new com.squareup.picasso.Transformation()

我想让图像在缓存中保存一周。

EN

回答 1

Stack Overflow用户

发布于 2019-07-16 19:32:11

创建自定义OkHttp interceptor并添加到毕加索。

代码语言:javascript
复制
public Interceptor provideCacheInterceptor(final int maxDays) {      
    return new Interceptor() {       
        @Override
        public Response intercept(Chain chain) throws IOException {
            Response response = chain.proceed(chain.request());
            CacheControl cacheControl = new CacheControl.Builder()
                .maxAge(maxDays, TimeUnit.DAYS)
                .build();

            return response.newBuilder()
                .header(Constants.CACHE_CONTROL, cacheControl.toString())
                .build();
        }
    };
}

现在,将这个添加到Gradle中

代码语言:javascript
复制
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.2'   

现在将自定义OkHttpClient附加到Picasso。更多信息

代码语言:javascript
复制
okhttp3.OkHttpClient okHttp3Client = new okhttp3.OkHttpClient();
int MaxCacheDays = 7; 
okHttp3Client.addNetworkInterceptor(provideCacheInterceptor(MaxCacheDays));  
OkHttp3Downloader okHttp3Downloader = new OkHttp3Downloader(okHttp3Client);  
Picasso picasso = new Picasso.Builder(context)  
        .downloader(new CustomOkHttp3Downloader(client))
        .build();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57055984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档