Flutter中使用cached_network_image插件的缓存持续时间是多久?

3

我正在使用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:)是修改缓存持续时间的唯一方法,那么我该如何在我的情况下使用它?
有人有想法吗?
谢谢 :)
1个回答

10

CachedNetworkImage可以接收一个参数叫做cacheManager。这意味着你可以给你的CachedNetworkImage提供一个自定义的CacheManager。首先,你应该将这个包添加到你的pubspec.yaml文件中。然后你可以添加类似下面的内容:

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

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

请注意,缓存的持续时间是从上次使用缓存文件开始计算的,而不是从下载日期开始计算,本示例中为7天。


非常感谢您提供详细的信息 - 它完美地工作了 :) - Ayrix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接