2011-06-08 70 views
0

我正在写一个应用程序,我计划将从服务器读取的图像存储到Android缓存。当我在某处读到“每当内存不足时Android系统缓存可以被系统清除”,所以如果我的图像被删除,我将如何得到图像被删除的指示?如何管理缓存?

回答

1

我认为没有办法知道Android是否已清除缓存。但是,如果将数据保存到缓存文件夹,则可以保留文件名并检查文件是否存在。

我对我的数据有一个下载任务,它首先检查缓存,如果没有数据存在,则开始下载。否则使用缓存的文件。

0

对于清除应用程序缓存把这个代码的onDestroy()

保护无效的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(); 
}