首页 > 其他 > 详细

(十八)计算应用程序所有的缓存信息和删除应用程序的所有缓存数据

时间:2014-11-17 15:42:53      阅读:163      评论:0      收藏:0      [点我收藏+]

一、计算应用程序所有的缓存信息,包括内部\外部缓存信息,数据库,SharedPreference,files目录的文件大小之和

/**
     * 计算应用程序所有的缓存信息,包括内部\外部缓存信息,数据库,SharedPreference,files目录的文件大小之和
     * 
     * @param context
     * @return
     */
    public String computeAllCacheSize(Context context) {
        long fileSize = 0;
        String cacheSize = "0KB";

        
        File cacheDir = context.getCacheDir(); // /data/data/包名/cache
        System.out.println("cache缓存的路径:" + cacheDir);
        fileSize += getDirSize(cacheDir);

        File dataFileDir = context.getFilesDir();
        fileSize += getDirSize(dataFileDir);

        File dataBaseFileDir = new File(("/data/data/"
                + context.getPackageName() + "/databases"));
        fileSize += getDirSize(dataBaseFileDir);

        File externalCacheDirFile = context.getExternalCacheDir();
        fileSize += getDirSize(externalCacheDirFile);

        File shared_prefs = new File("/data/data/" + context.getPackageName()
                + "/shared_prefs");
        fileSize += getDirSize(shared_prefs);

        if (fileSize > 0) {
            cacheSize = TextFormater.getDataSize(fileSize);
        }
        return cacheSize;
    }

二、

删除应用程序的所有缓存数据,包括内部\外部缓存信息,数据库,SharedPreference,files目录
/**
     * 删除应用程序的所有缓存数据,包括内部\外部缓存信息,数据库,SharedPreference,files目录
     * 
     * @param context
     */
    public void clearAppAllCache(Context context) {

        // 清除 /data/data/ package_name /cache(应用缓存)缓存信息:存放缓存数据
        File cacheFileDir = context.getCacheDir();
        clearCacheFolder(cacheFileDir);

        // /data/data/package_name/files:存放应用程序自己控制的文件
        File dataFileDir = context.getFilesDir();
        clearCacheFolder(dataFileDir);

        // 清除某应用所有数据库(/data/data/包名/databases)
        File dataBaseFileDir = new File(("/data/data/"
                + context.getPackageName() + "/databases"));
        clearCacheFolder(dataBaseFileDir);

        // 清除某应用程序外部cache下((/mnt/sdcard/android/data/包名/cache)的内容
        if (Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            File externalCacheDirFile = context.getExternalCacheDir();
            clearCacheFolder(externalCacheDirFile);
        }

        // 清除某应用程序((/data/data/包名/shared_prefs))的内容
        File shared_prefs = new File("/data/data/" + context.getPackageName()
                + "/shared_prefs");
        clearCacheFolder(shared_prefs);

    }

 

(十八)计算应用程序所有的缓存信息和删除应用程序的所有缓存数据

原文:http://www.cnblogs.com/fuyanan/p/4103624.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!