我在我的測試應用程序中使用fedor的延遲加載列表實現,我可以通過單擊按鈕清除緩存。我怎樣才能在列表視圖中獲取加載圖像的緩存大小並以編程方式清除緩存?如何在Android中獲取緩存大小
這裏是保存在緩存圖像的代碼:
public ImageLoader(Context context){
//Make the background thead low priority. This way it will not affect the UI performance.
photoLoaderThread.setPriority(Thread.NORM_PRIORITY-1);
mAssetManager = context.getAssets();
//Find the dir to save cached images
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir = new File(android.os.Environment.getExternalStorageDirectory(),"LazyList");
else
cacheDir = context.getCacheDir();
if(!cacheDir.exists())
cacheDir.mkdirs();
}
編輯:
所以基本上我加入這段代碼在clearCache()方法,但我仍然看不到當我滾動時圖像再次開始加載。
public void clearCache() {
//clear memory cache
long size=0;
cache.clear();
//clear SD cache
File[] files = cacheDir.listFiles();
for (File f:files) {
size = size+f.length();
if(size >= 200)
f.delete();
}
}
我只是修改我與我現在使用的代碼的問題,但依然看不到向下滾動後的圖像加載。 –
你在哪裏調用清除緩存?以及爲什麼你要做這個代碼if(size> = 200) f.delete(); –
我在我的主要活動中調用了這個:adapter.imageLoader.clearCache(); adapter.notifyDataSetChanged(); 。我放了IF,因爲我想讓它在大小達到200kb時刪除緩存。這是我正在做的嗎? –