2011-06-08 102 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(); 
}