私はテストアプリケーションでfedorの遅延ロードリストの実装を使用しています。ここで、1回のボタンクリックでキャッシュをクリアできます。ロードされたイメージのキャッシュサイズをlistviewで取得し、キャッシュをプログラムでクリアするにはどうすればよいですか?ここで 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();
}
}
私はちょうど私が今使っているコードを使用して私の質問を編集して、それでも画像がスクロールダウンした後にロードし表示することはできません。 –
ここで、キャッシュをクリアしていますか?なぜこのコードをやっているのか(size> = 200) f.delete(); –
私はこれを次のような主なアクティビティで呼びます:adapter.imageLoader.clearCache(); adapter.notifyDataSetChanged(); 。私はそれが大きさがおそらく200kbに達するとキャッシュを削除したいので、私はIFを入れます。それは正しいですか? –