Android獲取快取大小和清除快取功能

2021-08-16 22:09:02 字數 3172 閱讀 4289

拿去可以直接用

一、清除資料都有哪些

1、file-普通檔案儲存,對應路徑 /data/data/com.***.***/files-應用內檔案(得到的方法getfiledir())

2、database-資料庫檔案(.db檔案) 對應路徑 /data/data/com.***.***/database-應用資料庫

3、sharepreference-配置資料(.xml檔案) 對應路徑 /data/data/com.***.***/shared_prefs -應用內配置檔案

4、cache-快取 對應路徑 /data/data/com.***.***/cache -應用內快取(得到的方法 getcachedir())

二、應以內清除快取

/**

* 應用資料清除管理器

*/public class datacleanmanager

/*** * 清除本應用所有資料庫(/data/data/com.***.***/databases) * ***

@param

context

*/public static void

cleandatabases(context context)

/*** * 清除本應用sharedpreference(/data/data/com.***.***/shared_prefs) ***

@param

context

*/public static void

cleansharedpreference(context context)

/*** * 按名字清除本應用資料庫 * ***

@param

context

* @param

dbname

*/public static void

cleandatabasebyname(context context, string dbname)

/*** * 清除/data/data/com.***.***/files下的內容 * ***

@param

context

*/public static void

cleanfiles(context context)

/*** * 清除外部cache下的內容(/mnt/sdcard/android/data/com.***.***/cache)**

@param

context

*/public static void

cleanexternalcache(context context)

}/**

* * 清除自定義路徑下的檔案,使用需小心,請不要誤刪。而且只支援目錄下的檔案刪除 * ***

@param

filepath

*/public static void

cleancustomcache(string filepath)

/*** * 清除本應用所有的資料 * ***

@param

context

* @param

filepath

*/public static void

cleaninternalcache(context);

cleanexternalcache(context);

cleandatabases(context);

cleansharedpreference(context);

cleanfiles(context);

if (filepath == null)

for (string filepath : filepath)

}/**

* * 刪除方法 這裡只會刪除某個資料夾下的檔案,如果傳入的directory是個檔案,將不做處理 * ***

@param

directory

*/private static void

deletefilesbydirectory(file directory) }}

// 獲取檔案

// context.getexternalfilesdir() --> sdcard/android/data/你的應用的包名/files/

// 目錄,一般放一些長時間儲存的資料

// context.getexternalcachedir() -->

// sdcard/android/data/你的應用包名/cache/目錄,一般存放臨時快取資料

public static long

getfoldersize(file file) throws exception else

}} catch (exception e)

return size;

} /**

* 刪除指定目錄下檔案及目錄**

@param

deletethispath

* @param

filepath

* @return

*/public static void

deletefolderfile(string filepath, boolean deletethispath)

}if (deletethispath) else }}

} catch (exception e) }}

/*** 格式化單位**

@param

size

* @return

*/public static string getformatsize(double size)

double gigabyte = megabyte / 1024

;if (gigabyte < 1)

double terabytes = gigabyte / 1024

;if (terabytes < 1)

bigdecimal result4 = new bigdecimal(terabytes);

return result4.setscale(2

, bigdecimal.round_half_up).toplainstring() + "tb";}

public static string getcachesize(file file) throws exception

}

Android獲取螢幕大小

我們在做ui開發通常都會有這樣的需求,取得畫面的大小,以下這段 就能幫你在android平台中取得畫面的大小,如下 1.display display getwindowmanager getdefaultdisplay 2.log.i view height display.getheight 3...

Glide獲取快取大小以及清除快取

compile com.github.bumptech.glide glide 3.7.0 呼叫工具類獲取快取大小 string cachesize glidecacheutil.getinstance getcachesize this clean.settext cachesize dingwe...

Android獲取控制項的大小

有時候我們需要獲得控制項的大小,但是在activity的oncreate 生命週期方法中呼叫getwidth 和getheight 方法並不能獲得控制項的寬和高,因為此時我們的介面並未被繪製完成。不過我們卻可以在onwindowfocuschanged boolean hasfocus 這個方法中獲...