如何正确配置android universal image loader的有限缓存?
我正在使用,并试图通过在配置生成器中使用此行来限制(磁盘)缓存的使用量:如何正确配置android universal image loader的有限缓存?,android,caching,universal-image-loader,Android,Caching,Universal Image Loader,我正在使用,并试图通过在配置生成器中使用此行来限制(磁盘)缓存的使用量: .discCache(new TotalSizeLimitedDiscCache(cacheDir, 25 * 1024 * 1024)) 我可能在这里做了一些非常愚蠢的事情,但这应该将我的缓存限制在25MB,当我查看当前的应用程序信息时,我已经达到了45+MB,所以它似乎不起作用 我错过什么了吗 增加了怀疑:如果缓存编号还包括设置为true的“memorycache”,该怎么办?我工作的假设是,就imageLoader
.discCache(new TotalSizeLimitedDiscCache(cacheDir, 25 * 1024 * 1024))
我可能在这里做了一些非常愚蠢的事情,但这应该将我的缓存限制在25MB,当我查看当前的应用程序信息时,我已经达到了45+MB,所以它似乎不起作用
我错过什么了吗
增加了怀疑:如果缓存编号还包括设置为true的“memorycache”,该怎么办?我工作的假设是,就imageLoader
而言,这只是一个缓存,从应用程序/操作系统的角度来看,这只是另一个使用内存的东西。如果不是,它可以解释数字吗
初始化的完整代码:
private void initImageLoader() {
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisc(true)
.build();
File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext());
cacheDir.mkdirs();
ImageLoaderConfiguration config = new
ImageLoaderConfiguration.Builder(getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.discCache(new TotalSizeLimitedDiscCache(cacheDir, 25 * 1024 * 1024))
.build();
ImageLoader.getInstance().init(config);
}
用于调用代码(在imageView
中显示imageUrl
)
将默认内存缓存设置为false(因此不要使用
.cacheInMemory(true)
)时,缓存似乎将自身保持在设置的最大值。计算缓存可能是磁盘缓存和内存缓存的组合
这确实使Android操作系统中的“缓存”数量变得不那么有用,但另一方面,这是公平的。由于这些数字似乎在排列,所以只需设置两个最大值,并将其传达给用户。将测试在内存缓存未设置为true的情况下会发生什么。
ImageLoader.getInstance().displayImage(imageUrl, imageView);