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

Ayr*_*rix 3 caching duration flutter

我正在使用 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();
                      },
                    );
...
Run Code Online (Sandbox Code Playgroud)

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

如果这flutter_cache_manage:是修改缓存持续时间的唯一方法(使用 ),那么在我的情况下如何使用它?

有人有主意吗?

谢谢 :)

kfo*_*jan 11

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

CachedNetworkImage(
  imageUrl: snapshot.data,
  cacheManager: CacheManager(
    Config(
      'cacheKey',
      stalePeriod: Duration(days: 7),
    ),
  ),
),
Run Code Online (Sandbox Code Playgroud)

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

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