2014-01-18 23 views
3

我使用的"Android universal image loader library (v 1.9.1)",我試圖限制正在使用在配置建設者使用這條線(盤)的緩存量:如何正確配置android通用圖像加載器的有限緩存?

.discCache(new TotalSizeLimitedDiscCache(cacheDir, 25 * 1024 * 1024)) 

我可能會在這裏做一些非常愚蠢的,但這應該是限制我的緩存爲25MB,當我看到目前的應用程序信息,我已經在45 + MB,所以它似乎並沒有工作。

我錯過了什麼嗎?

增加懷疑:如果cache-number還包含設置爲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);    
} 

以及調用的代碼(顯示imageUrlimageView

ImageLoader.getInstance().displayImage(imageUrl, imageView); 
+0

要測試沒有將內存緩存設置爲true會發生什麼。 – Nanne

回答

1

當設置默認的內存緩存爲假(所以不要使用.cacheInMemory(true) ),緩存似乎保持在設定的最大值。計算出的緩存可能是磁盤緩存和內存緩存的組合。

這確實使得Android OS中的「緩存」數字可用性稍差,但另一方面,這是相當公平的。由於看起來數字正在排列,所以只需設置兩個最大值並將其傳達給用戶即可。