編輯:關於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; }主要就是遍歷文件夾,獲取文件夾中的文件的大小,獲取緩存大小。如果應用內的一些緩存圖片不希望被刪除,本人覺得還是將緩存的圖片放到指定的文件夾中,刪除的時候不要刪除該文件夾,這樣就不會因為清空緩存而重新加載圖片了。
1、用於沒有一點提示的情況:依次打開eclipse上面的windows ——preferences ——java ——editor —— content assist ,
1、概述 相信大家對AsyncTask都不陌生,對於執行耗時任務,然後更新UI是一把利器,當然也是替代Thread + Handler 的一種方式。如果你對
很多應用為了節省空間而又使界面能夠充足的顯示信息,大多數應用都采用了側邊欄的方式,如下圖: 來說說它
碎片(Fragment)是一種可以嵌入在活動當中的UI片段,它能讓程序更加合理和充分地利用屏幕的空間。首先建立一個平板的模擬器1034*600,環境使用android4.