Flutter 颤振中缓存大小的最大限制
我使用Firestore作为数据库,并在我的Flitter应用程序(iOS和Android)中加载和缓存图像。我注意到,在运行应用程序一段时间后(在调试模式下),应用程序的缓存大小变得太大(+300 mb)。 应用程序在Flatter中使用的缓存大小是否有最大限制?Flutter 颤振中缓存大小的最大限制,flutter,Flutter,我使用Firestore作为数据库,并在我的Flitter应用程序(iOS和Android)中加载和缓存图像。我注意到,在运行应用程序一段时间后(在调试模式下),应用程序的缓存大小变得太大(+300 mb)。 应用程序在Flatter中使用的缓存大小是否有最大限制? 是否有办法强制限制缓存大小,以便每当缓存大小达到其最大限制时,将删除最旧的缓存文件?cached\u network\u image依赖于 一个CacheManager,用于在的缓存目录中下载和缓存文件 应用程序。可以更改文件保留时
是否有办法强制限制缓存大小,以便每当缓存大小达到其最大限制时,将删除最旧的缓存文件?cached\u network\u image依赖于 一个CacheManager,用于在的缓存目录中下载和缓存文件 应用程序。可以更改文件保留时间的各种设置 它的工作原理 默认情况下,缓存文件存储在应用程序的临时目录中。这意味着操作系统可以随时删除这些文件 有关文件的信息使用sqflite存储在数据库中。数据库的文件名是cacheManager的键,这就是为什么它必须是唯一的 此缓存信息包含文件有效之前的结束日期以及与http缓存控件一起使用的eTag 方法
removeFile
从缓存中删除文件
emptyCache
从缓存中删除所有文件
范例
void _clearCache() {
DefaultCacheManager().emptyCache();
}
如果您希望能够在某个时间之后删除图像,则必须实现一个自定义缓存,该缓存在给定的天数之后删除图像
来自文件TL:DR
class CustomCacheManager extends BaseCacheManager {
static const key = "customCache";
static CustomCacheManager _instance;
factory CustomCacheManager() {
if (_instance == null) {
_instance = new CustomCacheManager._();
}
return _instance;
}
CustomCacheManager._() : super(key,
maxAgeCacheObject: Duration(days: 7),
maxNrOfCacheObjects: 20);
Future<String> getFilePath() async {
var directory = await getTemporaryDirectory();
return p.join(directory.path, key);
}
类CustomCacheManager扩展了BaseCacheManager{
static const key=“customCache”;
静态CustomCacheManager\u实例;
factory CustomCacheManager(){
if(_instance==null){
_实例=新的CustomCacheManager.uz();
}
返回_实例;
}
CustomCacheManager.uz():super(键,
maxAgeCacheObject:持续时间(天:7),
maxNrOfCacheObjects:20);
未来的getFilePath()异步{
var directory=await getTemporaryDirectory();
返回p.join(directory.path,key);
}
对于您的用例,请使用clearDiskCachedImages方法缓存图像并清除缓存
// Clear the disk cache directory then return if it succeed.
/// <param name="duration">timespan to compute whether file has expired or not</param>
Future<bool> clearDiskCachedImages({Duration duration})
//清除磁盘缓存目录,如果成功则返回。
///计算文件是否已过期的时间跨度
未来的clearDiskCachedImages({Duration})
图像缓存可缓存多达1000个图像,以及多达100 MB的图像。这可能会更多,但最小值为100 MB。您有任何来源吗?