Android清空應(yīng)用內(nèi)部文件緩存
Android應(yīng)用中加載的圖片以及一些數(shù)據(jù)緩存怎么清掉呢?最近在做項(xiàng)目中遇到了這個(gè)問題,網(wǎng)上搜了一下找到了不少的源代碼,綜合了這些源碼,下面給大家說一下吧,怎么有效的清除應(yīng)用內(nèi)存的緩存信息?
清除應(yīng)用內(nèi)部緩存主要包含以下幾大模塊:
一、清除應(yīng)用本地所有數(shù)據(jù)庫緩存
/** * 清除本應(yīng)用所有數(shù)據(jù)庫(/data/data/com.xxx.xxx/databases) * * @param context */
public static void cleanDatabases(Context context) {
deleteFilesByDirectory(new File("/data/data/"
+ context.getPackageName() + "/databases"));
}
二、清除本應(yīng)用SharePreference數(shù)據(jù)
/**
* * 清除本應(yīng)用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數(shù)據(jù)
/** * 清除/data/data/com.xxx.xxx/files下的內(nèi)容 * * @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下的數(shù)據(jù)
/**
* * 清除外部cache下的內(nèi)容(/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());
}
}
最后怎么獲取這些數(shù)據(jù)的大小呢?貼上源碼:
/**
* 獲取文件夾大小
* @param file File實(shí)例
* @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;
}
主要就是遍歷文件夾,獲取文件夾中的文件的大小,獲取緩存大小。如果應(yīng)用內(nèi)的一些緩存圖片不希望被刪除,還是將緩存的圖片放到指定的文件夾中,刪除的時(shí)候不要?jiǎng)h除該文件夾,這樣就不會因?yàn)榍蹇站彺娑匦录虞d圖片了。
以上就是關(guān)于Android清空應(yīng)用內(nèi)部文件緩存方法的詳細(xì)介紹,希望對大家的學(xué)習(xí)有所幫助。
- Android開發(fā)之ImageLoader本地緩存
- Android Universal ImageLoader 緩存圖片
- Android編程使用緩存優(yōu)化ListView的方法
- android實(shí)現(xiàn)緩存圖片等數(shù)據(jù)
- Android實(shí)現(xiàn)WebView刪除緩存的方法
- Android中的Bitmap緩存池使用詳解
- android開發(fā)教程之清除android數(shù)據(jù)緩存示例(清除本地?cái)?shù)據(jù)緩存)
- Android中加載網(wǎng)絡(luò)資源時(shí)的優(yōu)化可使用(線程+緩存)解決
- android異步加載圖片并緩存到本地實(shí)現(xiàn)方法
- Android開發(fā)之刪除項(xiàng)目緩存的方法
相關(guān)文章
Flutter?Widget開發(fā)之Focus組件圖文詳解
這篇文章主要為大家介紹了Flutter?Widget開發(fā)之Focus組件圖文詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Android getBackground().setAlpha遇到問題解決辦法
這篇文章主要介紹了Android getBackground().setAlpha遇到問題解決辦法的相關(guān)資料用,getBackground().setAlpha,導(dǎo)致其他布局背景透明度都改變的問題,需要的朋友可以參考下2017-03-03
淺談 Android 7.0 多窗口分屏模式的實(shí)現(xiàn)
這篇文章主要介紹了淺談 Android 7.0 多窗口分屏模式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Android編程之?dāng)?shù)據(jù)庫Sql編程實(shí)例分析
這篇文章主要介紹了Android編程之?dāng)?shù)據(jù)庫Sql編程,實(shí)例分析了Android操作Sqlite數(shù)據(jù)庫的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
利用Jetpack?Compose實(shí)現(xiàn)繪制五角星效果
這篇文章主要為大家介紹了Jetpack?Compose如何使用自定義操作符實(shí)現(xiàn)繪制五角星效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04
Android實(shí)現(xiàn)底部彈出按鈕菜單升級版
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)底部彈出按鈕菜單的升級版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
android屏幕圓角實(shí)現(xiàn)方法的示例代碼
本篇文章主要介紹了android屏幕圓角實(shí)現(xiàn)方法的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
android開發(fā)之listView組件用法實(shí)例簡析
這篇文章主要介紹了android開發(fā)之listView組件用法,結(jié)合實(shí)例形式簡單分析了listView組件的相關(guān)屬性與使用技巧,需要的朋友可以參考下2016-01-01
Android仿微信5實(shí)現(xiàn)滑動導(dǎo)航條
這篇文章主要為大家詳細(xì)介紹了Android仿微信5實(shí)現(xiàn)滑動導(dǎo)航條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08

