【发布时间】:2014-02-07 19:37:09
【问题描述】:
我正在使用"Android universal image loader library (v 1.9.1)",并且我正在尝试通过在配置生成器中使用此行来限制正在使用的(磁盘)缓存数量:
.discCache(new TotalSizeLimitedDiscCache(cacheDir, 25 * 1024 * 1024))
我可能在这里做了一些非常愚蠢的事情,但这应该将我的缓存限制为 25MB,当我查看当前的应用程序信息时,我已经超过了 45MB,所以它似乎不起作用。
我错过了什么吗?
增加了怀疑:如果缓存号还包括设置为 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)
ImageLoader.getInstance().displayImage(imageUrl, imageView);
【问题讨论】:
-
在没有将内存缓存设置为 true 的情况下测试会发生什么。
标签: android caching universal-image-loader