編輯:關於Android編程
Android應用中加載的圖片以及一些數據緩存怎麼清掉呢?最近在做項目中遇到了這個問題,網上搜了一下找到了不少的源代碼,綜合了這些源碼,下面給大家說一下吧,怎麼有效的清除應用內存的緩存信息?
清除應用內部緩存主要包含以下幾大模塊:
一、清除應用本地所有數據庫緩存
/** * 清除本應用所有數據庫(/data/data/com.xxx.xxx/databases) * * @param context */
public static void cleanDatabases(Context context) {
deleteFilesByDirectory(new File("/data/data/"
+ context.getPackageName() + "/databases"));
}
二、清除本應用SharePreference數據
/**
* * 清除本應用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) * * @param
* context
*/
public static void cleanSharedPreference(Context context) {
deleteFilesByDirectory(new File("/data/data/"
+ context.getPackageName() + "/shared_prefs"));
}
三、清除data/data/com.xxx.xxx/files數據
/** * 清除/data/data/com.xxx.xxx/files下的內容 * * @param context */
public static void cleanFiles(Context context) {
File sdDir = Environment.getExternalStorageDirectory();//獲取跟目錄
sdDir = new File(sdDir.getPath()+File.separator+"xxx");
sdDir = new File(sdDir.getPath() +File.separator+ "files");
deleteFilesByDirectory(sdDir);
}
四、清除外部cache下的數據
/**
* * 清除外部cache下的內容(/mnt/sdcard/android/data/com.xxx.xxx/cache) * * @param
* context
*/
public static void cleanExternalCache(Context context) {
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
deleteFilesByDirectory(context.getExternalCacheDir());
}
}
最後怎麼獲取這些數據的大小呢?貼上源碼:
/**
* 獲取文件夾大小
* @param file File實例
* @return long
*/
public static long getFolderSize(java.io.File file){
long size = 0;
try {
java.io.File[] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++)
{
if (fileList[i].isDirectory())
{
size = size + getFolderSize(fileList[i]);
}else{
size = size + fileList[i].length();
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//return size/1048576;
return size;
}
主要就是遍歷文件夾,獲取文件夾中的文件的大小,獲取緩存大小。如果應用內的一些緩存圖片不希望被刪除,還是將緩存的圖片放到指定的文件夾中,刪除的時候不要刪除該文件夾,這樣就不會因為清空緩存而重新加載圖片了。
以上就是關於Android清空應用內部文件緩存方法的詳細介紹,希望對大家的學習有所幫助。
Buzz桌面教程-添加應用程序圖標到桌面
Buzz桌面安裝好之後,是不會自動將已安裝的手機應用程序圖標添加到桌面上的,需要我們手動添加或拖動應用程序圖標到桌面,下面就讓我們來看看如何將已經安裝的應用
僅5步搞定Android開發環境部署 Android開發環境搭建教程
在windows安裝Android的開發環境不簡單也說不上算復雜,本文寫給第一次想在自己Windows上建立Android開發環境投入Android浪潮的朋友們,為了確保
Android實現文字翻轉動畫的效果
本文實現了Android程序文字翻轉動畫的小程序,具體代碼如下:先上效果圖如下:要求:沿Y軸正方向看,數值減1時動畫逆時針旋轉,數值加1時動畫順時針旋轉。實現動畫的具體細
Android Library上傳到JCenter倉庫實踐
前言這段時間研究了下以前做app開發的時候並沒有太過關注的JCenter倉庫,在實際開發當中通常都是使用第三方開發者上傳到jcenter的library,而我們使用的這些