android picasso 设置缓存路径,caching - Android + Picasso: changing URL cache expiration - Stack Overflow...

Before thinking about HTTP behavior, make sure you set a large max size for the disk cache:

cache = Cache(File(application.filesDir, "photos"), Long.MAX_VALUE)

(MAX_VALUE is not recommended for production.) Don't store the cache in application.cacheDir, because android can clear that whenever it wants.

Add an interceptor to set max-stale, which tells the disk cache to use all old files:

val httpClient = OkHttpClient.Builder().cache(cache).addInterceptor { chain ->

// When offline, we always want to show old photos.

val neverExpireCacheControl = CacheControl.Builder().maxStale(Int.MAX_VALUE, TimeUnit.SECONDS).build()

val origRequest = chain.request()

val neverExpireRequest = origRequest.newBuilder().cacheControl(neverExpireCacheControl).build()

chain.proceed(neverExpireRequest)

}.build()

return Picasso.Builder(application).downloader(OkHttp3Downloader(httpClient)).loggingEnabled(true).build()

I discovered this solution by debugging CacheStrategy.getCandidate(). Take a look there if this doesn't solve your problem.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值