getCacheDir
getCacheDir()其對應着應用程序內的內部緩存,用來存儲臨時數據。因此在系統空間較少時有可能會被自動清除。存放路徑一般是/data/data/<應用包名>/cache目錄。
getExternalCacheDir
getExternalCacheDir()對應着應用程序內的外部緩存,同樣是用來存儲臨時數據的。但是其由於脫離了應用管理,因此並不會在空間少時被自動清除。存放路徑一般是/storage/sdcard/Android/data/<應用包名>/cache目錄。
應用卸載
當用戶卸載當前應用程序時,以上兩個方法裏的內容都會隨着應用卸載所清除。若有想要一直保存的內容,可以調用getExternalStorageDirectory目錄下(抑或其他sd卡下的目錄)進行保存。
當然,如果想要保存文件數據(長時間保存),上面對應着getFilesDir()和getExternalFilesDir(),類比即可。
筆記
可以看到,當有External(外存)時,數據都是緩存在sd卡中的(若存在);否則則是內部緩存(可管理)。