我正在编写一个应用程序,我计划将从服务器读取的图像存储到Android缓存中。正如我在某处读到的那样“只要内存不足,就可以通过系统清除Android缓存”,所以如果删除了图像,我将如何获得图像被删除的指示?
答案 0 :(得分:1)
我认为没有办法知道Android已经清除了缓存。但是,如果将数据保存到缓存文件夹,则可以保留文件名并检查文件是否存在。
我的数据下载任务首先检查缓存,如果没有数据,则下载开始。否则使用缓存文件。
答案 1 :(得分:0)
为清除应用缓存,请将此代码放入onDestroy()
protected void onDestroy(){super.onDestroy();
try {
trimCache(this);
// Toast.makeText(this,"onDestroy " ,Toast.LENGTH_LONG).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void trimCache(Context context) {
try {
File dir = context.getCacheDir();
if (dir != null && dir.isDirectory()) {
deleteDir(dir);
}
} catch (Exception e) {
// TODO: handle exception
}
}
public static 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();
}