【问题标题】:Caching duration in Flutter using the plugin cached_network_image?使用插件 cached_network_image 在 Flutter 中缓存持续时间?
【发布时间】:2021-05-24 23:41:31
【问题描述】:

我正在使用颤振插件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: 并看到了 Type Duration(days: 7)

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

有人有想法吗?

谢谢:)

【问题讨论】:

    标签: flutter caching duration


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您提供详细信息 - 效果很好 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 2011-01-25
    • 2021-03-23
    • 2021-08-07
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多