【问题标题】:Flutter cache manager libraryFlutter 缓存管理器库
【发布时间】:2019-04-08 18:58:28
【问题描述】:

我正在使用这个库https://pub.dartlang.org/packages/flutter_cache_manager#-readme-tab- 我有两个问题。 首先,我不清楚 getFile(url) 函数是否会自动缓存返回的文件,或者我是否必须在返回后调用 putFile()。

其次,我看到您可以覆盖 BaseCacheManager 来设置 maxAgeCacheObject。操作系统是否会自动删除已过期的文件,或者我必须确保它们已被清除。

感谢您的帮助:)

【问题讨论】:

    标签: caching memory flutter


    【解决方案1】:

    ad 1) getFile(url) 方法将“自动”缓存结果。 putFile() 方法仅适用于热切预缓存数据。

    ad 2) 两者都有,你应该确保你有一个合理的上限。但是由于文件存储在允许操作系统删除的临时目录中,如果设备存储空间不足,文件将被删除。 --- FWIW - 不,操作系统不会删除太旧的文件,但缓存管理器会删除早于maxAgeCacheObject 的对象。 (操作系统不知道文件的年龄,它可能会先开始删除最旧的文件,但不能保证这一点。)

    【讨论】:

    • 感谢您的回答赫伯特。您能否告诉我缓存管理器何时删除年龄大于 maxAgeCacheObject 的文件...例如,当单例第一次初始化时它会这样做吗?
    • @ebg11 现在很好,它在 每次访问 github.com/renefloor/flutter_cache_manager/blob/master/lib/src/… .. (缓存管理器为(基本上)每个缓存访问创建一个新的 sqlite 连接 - @ 987654322@ imo 很奇怪,尤其是因为永远不要在移动设备上关闭 sqlite stackoverflow.com/a/44578432/109219 是 afaik 的最佳实践,但这有点离题了 :)
    • 感谢您的帮助 :)
    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 2011-01-02
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2021-06-03
    • 1970-01-01
    相关资源
    最近更新 更多