public void trimCache() {
try {
File dir = this.getCacheDir();
File appDir = new File(dir.getParent());
if (appDir != null && appDir.isDirectory()) {
new clearcache().execute(appDir);
}
} catch (Exception e) {
// TODO: handle exception
}
}
public class clearcache extends AsyncTask<File ,Void, Void>{
@Override
protected Void doInBackground(File... params) {
deleteDir(params[0]);
Log.d("clearcache", params[0].length()+"");
return null;
}
public boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
// The directory is now empty so delete it
return dir.delete();
}
}
上記のコードを使用してキャッシュ メモリをクリアしていますが、これによりデータベースの更新も削除されます。データベースの更新に影響を与えずにキャッシュ (画像キャッシュ) だけをクリアするにはどうすればよいですか?