当前位置: 首页 > article >正文

【Flutter 问题系列第 84 篇】如何清除指定网络图片的缓存

这是【Flutter 问题系列第 84 篇】,如果觉得有用的话,欢迎关注专栏。

博文当前所用 Flutter SDK:3.24.3、Dart SDK:3.5.3,网络图片缓存用的插件 cached_network_image: 3.4.1,缓存的网络图像的存储和检索用的插件 flutter_cache_manager: 3.4.1。

一:问题描述

针对相同网络图片的地址,通过缓存图片到本地的方式可以提升应用的使用感受。不过有时候会有根据条件触发清理所有缓存或者某张图片缓存的情况,如同一个 Url 根据条件返回不同的图片,如果之前本地已经缓存了图片 A,则 Url 不变的前提下对应的图片变成图片 B,此时再次启动应用看到的还是图片 A,这个时候怎么解决呢?

二:解决方案

在 CachedNetworkImage 的构造函数中有一个 cacheKey 的字段,意思是当前网络图片所对应的缓存标识 key,默认是可空 String 类型,如下图所示。

在这里插入图片描述

如果要清空当前图片的缓存的话肯定是根据此 cacheKey 来处理,所以我们需要先定义一个缓存的 key,如下代码所示

import 'package:cached_network_image/cached_network_image.dart';

final String _cacheKey = 'AllenSu';

CachedNetworkImage(
  imageUrl: "https://xxx...",
  cacheKey: _cacheKey,
),

接下来就是如何根据 cacheKey 清空了,使用 flutter_cache_manager 的话很简单,一行代码搞定,如下所示

import 'package:flutter_cache_manager/flutter_cache_manager.dart';

... do something ...
await DefaultCacheManager().removeFile(_cacheKey);

如果是清空所有图片缓存的话使用如下方式即可。

await DefaultCacheManager().emptyCache();

ok,问题解决,在 Flutter 中如何清除指定网络图片的缓存便介绍到这里。

你的问题得到解决了吗?欢迎在评论区留言。

赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。


结束语

Google 的 Flutter 越来越火,截止 2024年11月16日 GitHub 标星已达 166K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。

无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。

http://www.kler.cn/a/401986.html

相关文章:

  • 25. 架构能力
  • 【C#】C#编程入门指南:构建你的.NET开发基础
  • NIST 发布后量子密码学转型战略草案
  • 金山云Q3调整后EBITDA率提升至9.8% 经营效率和盈利能力强劲增长
  • Linux的目录结构
  • 闫氏DP分析法应用
  • sql数据库-权限控制-DCL
  • 第二十四章 TCP 客户端 服务器通信 - 当前 TCP 设备
  • 大公司如何实现打印机共享的?如何对打印机进行管控或者工号登录后进行打印?异地打印机共享的如何实现可以帮助用户在不同地理位置使用同一台打印机完成打印任务?
  • 【LeetCode面试150】——49字母异位分词
  • PHP进阶-CentOS7部署LNMP服务架构的项目
  • 【苍穹外卖】学习日志-day1
  • 网络安全常见练习靶场
  • 使用ajax-hook修改http请求响应数据,篡改后再返回给正常的程序
  • 【Docker】快速部署 Pikachu:一个包含常见 Web 安全漏洞的渗透测试练习靶场
  • C++系列之继承
  • 数学分组求偶数和
  • Ubuntu 20.04 默认的软件包源中可能不包含 gcc-11 和 g++-11
  • SOC Boot学习(二)——JTAG Debug介绍
  • LPDDR4芯片学习(四)——DDR Training
  • uniApp项目运行到鸿蒙手机,应用图标一直是H,应用名一直是HBuilder问题
  • Soul App创始人张璐团队携多模态大模型参加GITEX GLOBAL,展现未来社交趋势
  • Javascript面试对象编程 - 手写apply call bind new
  • 远程办公用香港服务器合适吗?
  • leetcode400第N位数字
  • [Go实战]:SSE消息推送