android source

Cache Clear

리오파파 2025. 7. 13. 16:37

Cache clear

 

package beautiful.life.saychat.func;

import android.content.Context;
import java.io.File;

public class CacheUtils {

    public static void clearCache(Context context) {
//        try {
//            File cacheDir = context.getCacheDir();
//            if (cacheDir != null && cacheDir.isDirectory()) {
//                deleteDir(cacheDir);
//            }
//        } catch (Exception e) {
//            e.printStackTrace(); // Handle exceptions appropriately
//        }
//
//        try {
//            File codeCacheDir = context.getCodeCacheDir();
//            if(codeCacheDir != null && codeCacheDir.isDirectory()){
//                deleteDir(codeCacheDir);
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }

    }

    private static boolean deleteDir(File dir) {
        if (dir != null && dir.isDirectory()) {
            String[] children = dir.list();
            if (children != null) {
                for (String child : children) {
                    boolean success = deleteDir(new File(dir, child));
                    if (!success) {
                        return false;
                    }
                }
            }
        }
        // The directory is now empty so delete it
        if(dir != null){
            return dir.delete();
        }
        return false;
    }

    public static void clearExternalCache(Context context){
        try{
            File externalCacheDir = context.getExternalCacheDir();
            if(externalCacheDir != null && externalCacheDir.isDirectory()){
                deleteDir(externalCacheDir);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public static long getCacheSize(Context context){
        long size = 0;
        try{
            File cacheDir = context.getCacheDir();
            if(cacheDir != null && cacheDir.isDirectory()){
                size += getDirSize(cacheDir);
            }
            File codeCacheDir = context.getCodeCacheDir();
            if(codeCacheDir != null && codeCacheDir.isDirectory()){
                size += getDirSize(codeCacheDir);
            }
            File externalCacheDir = context.getExternalCacheDir();
            if(externalCacheDir != null && externalCacheDir.isDirectory()){
                size += getDirSize(externalCacheDir);
            }

        }catch (Exception e){
            e.printStackTrace();
        }
        return size;
    }

    private static long getDirSize(File dir) {
        long size = 0;
        if (dir != null && dir.isDirectory()) {
            File[] files = dir.listFiles();
            if (files != null) {
                for (File file : files) {
                    if (file.isDirectory()) {
                        size += getDirSize(file);
                    } else {
                        size += file.length();
                    }
                }
            }
        }
        return size;
    }
}

 

'android source ' 카테고리의 다른 글

bluetooth detect  (1) 2025.08.15
Screen On 상태 확인  (0) 2025.07.20
scheduler 로 task repeating  (1) 2025.07.08
BlockedQue Operation  (1) 2025.03.18
내 앱이 화면 전면에 있나 확인하는 법  (0) 2025.02.25