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

FFImage调用缓存清理方法未生效,旧图片无刷新问题求助

FFImageLoading CachedImage 清理缓存不生效解决方案

以下是按优先级排列的可落地解决方法:

  • 异步缓存方法补全await调用
    你当前调用的所有缓存清理方法都是异步方法,未添加await会导致缓存还没清理完成就触发了图片加载逻辑,自然拿到的还是旧资源。修改代码如下:
// 先取消所有正在执行的图片加载任务,避免旧请求返回
await FFImageLoading.ImageService.Instance.CancelAllTasksAsync();
// 顺序执行缓存清理,等待所有清理操作完成
await FFImageLoading.ImageService.Instance.InvalidateDiskCacheAsync();
await FFImageLoading.ImageService.Instance.InvalidateMemoryCache();
await FFImageLoading.ImageService.Instance.InvalidateCacheAsync(FFImageLoading.Cache.CacheType.All);

注意不要在页面构造函数、同步生命周期方法中直接调用以上代码,可放在OnAppearing等支持异步的方法中执行。

  • 强制触发绑定属性变更通知
    缓存清理完成后,你绑定的image1Source、image2Source属性值如果没有发生变化,UI层不会重新触发图片加载逻辑,需要主动触发属性变更通知:
// 继承INotifyPropertyChanged的ViewModel中调用
OnPropertyChanged(nameof(image1Source));
OnPropertyChanged(nameof(image2Source));

如果以上操作不生效,可以临时将属性置空再复原,强制触发重加载:

var tempImg1 = image1Source;
image1Source = null;
OnPropertyChanged(nameof(image1Source));
image1Source = tempImg1;
OnPropertyChanged(nameof(image1Source));

// 对image2Source执行相同操作
  • 禁用HTTP层缓存
    FFImageLoading的缓存清理只会清理自身维护的内存、磁盘缓存,不会清理系统HTTP客户端自带的缓存。如果图片资源对应的URL没有变化但服务端内容更新,系统HTTP层可能会直接返回旧的缓存资源。可以在FFImage初始化时配置禁用HTTP缓存:
FFImageLoading.Config.Configuration.Default = new FFImageLoading.Config.Configuration
{
    HttpClient = new System.Net.Http.HttpClient(new System.Net.Http.HttpClientHandler
    {
        AutomaticDecompression = System.Net.DecompressionMethods.GZip,
        CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore)
    })
};
  • 临时规避方案:URL加随机参数
    如果是URL不变、仅图片内容更新的场景,最稳妥的规避方案是给图片URL末尾加动态时间戳参数,让缓存键完全变更,彻底跳过所有旧缓存:
// 拼接时间戳生成新的图片地址
image1Source = $"https://your-domain.com/1.jpg?t={DateTimeOffset.UtcNow.ToUnixTimeSeconds()}";
OnPropertyChanged(nameof(image1Source));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:36:06