flutter - 使用插件 cached_network_image 在 Flutter 中缓存持续时间?

标签 flutter caching duration

我正在使用 flutter 插件 cached_network_image:并想知道缓存文件的缓存持续时间是多长时间? 另外,是否有办法将缓存持续时间修改为 x 天?

我还想知道的是,文件是以原始文件格式缓存的还是经过转换的?例如*.HEIC -> *.JPEG

目前我只是缓存调用:CachedNetworkImage(imageUrl: snapshot.data))

或见下文....

...return FutureBuilder(
                      future: FireStorageService.downloadImageFromStorage(
                          context, snapshot.data.items[index].fullPath),
                      builder: (context, snapshot) {
                        if (snapshot.connectionState == ConnectionState.done) {
                          return GridTile(
                            child: Card(
                                child: CachedNetworkImage(imageUrl: snapshot.data)),
                          );
                        }
                        return Container();
                      },
                    );
...

在寻找有关上述问题的答案时,我遇到了插件 flutter_cache_manager:并看到类型 Duration(days: 7)

如果这(使用 flutter_cache_manage:)是修改缓存持续时间的唯一方法,我该如何在我的案例中使用它?

有人有想法吗?

谢谢:)

最佳答案

CachedNetworkImage 可以接收一个名为 cacheManager 的参数。这意味着您可以为您的 CachedNetworkImage 提供自定义 CacheManager 首先您应该添加 this package到你的 pubspec.yaml。然后你可以添加这样的东西:

CachedNetworkImage(
  imageUrl: snapshot.data,
  cacheManager: CacheManager(
    Config(
      'cacheKey',
      stalePeriod: Duration(days: 7),
    ),
  ),
),

将持续时间替换为您想要的持续时间,并将缓存键替换为您想要的任何 String。如果需要,将其他参数添加到 Config 对象。

请注意,缓存的持续时间是从上次使用缓存文件算起的 7 天(在此示例中),而不是从下载日期算起。

关于flutter - 使用插件 cached_network_image 在 Flutter 中缓存持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67680057/

相关文章:

flutter - DraggableScrollableSheet 在拖动时不给出工作表的当前位置

javascript - 在模态中加载模型仅有效一次

node.js - 如何通过 node-fluent-ffmpeg 获取视频时长?

java - 计算两个时间点的持续时间 ISO 8601

java - EclipseLink 缓存大小默认...是每个实体还是总计?

ios - 如何获得像 “mm:ss”格式的歌曲的实际持续时间?

flutter - 保留 BottomNavigationBar 并更改 AppBar

dart - Dart AOT 是如何工作的?

android - Flutter 启动画面不隐藏底栏

php - Laravel 5 - 缓存记住不起作用