【MVP】CacheUtil缓存工具类,获得缓存大小和清除缓存
来源:互联网 发布:淘宝二手手机可靠店铺 编辑:程序博客网 时间:2024/06/05 19:14
缓存管理是所有App都适用的。下面是网上比较全面的。
package com.example.chen.lolhelper.util;import android.content.Context;import android.os.Environment;import java.io.File;import java.math.BigDecimal;/** * Created by chen on 2017/8/24. * * 缓存类 */public class CacheUtil { /** * * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * * * * @param context */ public static void cleanInternalCache(Context context) { deleteFilesByDirectory(context.getCacheDir()); } /** * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) * @param context */ public static void cleanDatabases(Context context){ deleteFilesByDirectory(new File("/data/data/" +context.getPackageName()+"/databases")); } /** * * 清除本应用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")); } /** * * 按名字清除本应用数据库 * * * * @param context * @param dbname */ public static void cleanDatabaseByName(Context context,String dbname){ context.deleteDatabase(dbname); } /** * * 清除/data/data/com.xxx.xxx/files下的内容 * * * * @param context */ public static void cleanFiles(Context context) { deleteFilesByDirectory(context.getFilesDir()); } /** * * 清除外部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 filePath */ public static void cleanCustomCache(String filePath){ deleteFilesByDirectory(new File(filePath)); } /** * * 清除本应用所有的数据 * * * * @param context * @param filepath */ public static void cleanApplicationData(Context context, String... filepath) { cleanInternalCache(context); cleanExternalCache(context); cleanDatabases(context); cleanSharedPreference(context); cleanFiles(context); if (filepath == null) { return; } for (String filePath : filepath) { cleanCustomCache(filePath); } } /** * * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * * * * @param directory */ public static void deleteFilesByDirectory(File directory){ if(directory != null && directory.exists() && directory.isDirectory()){ for (File item:directory.listFiles()){ if (item.isFile()){ item.delete(); }else if (item.isDirectory()){ deleteFilesByDirectory(item); } } } } /** * * Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据 * Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据 * * 计算文件夹的大小 * @param file * @return * @throws Exception */ public static long getFolderSize(File file)throws Exception{ long szie = 0; try { File[] fileList = file.listFiles(); for (int i=0;i<fileList.length;i++){ // 如果下面还有文件 if (fileList[i].isDirectory()){ szie = szie + getFolderSize(fileList[i]); }else { szie = szie + fileList[i].length(); } } }catch (Exception e){ e.printStackTrace(); } return szie; } public static String getFormatSize(double size){ double kiloByte = size/1024; if (kiloByte < 1){ return size+"Byte"; } double megaByte =kiloByte/1024; if (megaByte < 1){ BigDecimal result1 = new BigDecimal(Double.toString(kiloByte)); return result1.setScale(2,BigDecimal.ROUND_HALF_UP) .toPlainString()+"KB"; } double gigaByte = megaByte/1024; if (gigaByte<1){ BigDecimal result2 = new BigDecimal(Double.toString(megaByte)); return result2.setScale(2,BigDecimal.ROUND_HALF_UP) .toPlainString()+"MB"; } double teraBytes = gigaByte /1024; if (teraBytes < 1){ BigDecimal result3 =new BigDecimal(Double.toString(gigaByte)); return result3.setScale(2,BigDecimal.ROUND_HALF_UP) .toPlainString()+"GB"; } BigDecimal result4 = new BigDecimal(teraBytes); return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB"; } public static String getCacheSize(File file)throws Exception{ return getFormatSize(getFolderSize(file)); }}
阅读全文
0 0
- 【MVP】CacheUtil缓存工具类,获得缓存大小和清除缓存
- 计算缓存大小和清除缓存
- 获取缓存大小和清除缓存功能
- 获取缓存大小和清除缓存功能
- 获取缓存大小和清除缓存功能
- 获取缓存的大小和清除缓存
- Android 计算缓存大小和清除缓存
- Android计算缓存大小和清除缓存
- 获取缓存大小和清除缓存功能
- 清除缓存工具类
- 清除缓存工具类
- 清除缓存工具类
- 清除缓存工具类
- 框架基础____缓存框架基本的原理_一个简单的缓存工具类CacheUtil
- 清除缓存,计算缓存大小
- 清除缓存计算缓存大小
- 计算缓存大小+清除缓存
- Glide 缓存工具例子,缓存大小获取,磁盘缓存清除(2 种方法),内存缓存清除
- redisson分布式锁redLock源码解析【未完】
- 图片压缩
- netty实现websocket
- 关于微信小程序的思考:运营者该何去何从
- opencv
- 【MVP】CacheUtil缓存工具类,获得缓存大小和清除缓存
- PHP心跳
- Lucene创建索引
- spring AOP--记录日志
- mac ssh 工具, SecureCRT 7.0.2 for mac完美破解版 下载
- linux网络编程
- LDO 低压差线性稳压器
- Java并发编程:volatile关键字解析
- Tomcat部署Web工程的四种方式