You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android:DisplayImageOptions的cacheOnDisk缓存时长是多久还是永久?

ImageLoader磁盘缓存时长说明

嘿,关于你问的cacheOnDisk(true)设置后图片缓存的时长问题,我给你梳理清楚哈~

默认情况下,ImageLoader的磁盘缓存不会自动过期——简单说就是图片会一直留在磁盘上,只有遇到以下几种情况才会被清理:

  • 当磁盘缓存的总容量达到你设置的diskCacheSize上限时,ImageLoader会按照LRU(最近最少使用)的规则,自动删除最久没被访问的缓存文件
  • 你在代码里手动调用ImageLoader.clearDiskCache()方法主动清理缓存
  • 用户手动删除App的缓存目录(比如在系统设置里清除App数据/缓存)

如果想要让缓存文件自动过期(比如设置7天后自动失效),你需要额外自定义磁盘缓存的规则,举个实用的代码例子:

// 自定义磁盘缓存,设置7天的过期时间,总缓存大小50MB
DiskCache diskCache = new LruDiskCache(
    new File(getCacheDir(), "imageloader_cache"), // 缓存目录
    new Md5FileNameGenerator(), // 文件名生成器
    50 * 1024 * 1024, // 缓存总容量上限:50MB
    7 * 24 * 60 * 60 * 1000 // 过期时间:7天(毫秒值)
);

// 将自定义缓存配置到ImageLoader中
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
    .diskCache(diskCache)
    .build();

最后给你划个重点:

  • 默认配置下,缓存会永久保留,直到触发LRU清理或手动操作
  • 自动过期功能需要你手动配置缓存的过期时间

内容的提问来源于stack exchange,提问作者Buzusima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:47:07