본문 바로가기
안드로이드

안드로이드 Cache 파일 삭제하기

by 호군 2011. 10. 20.
반응형

WebView를 사용하게되면 '/data/data/[pakage name]/cache/'에 파일들이 생성이 됩니다.
cache 파일들이 꾀 많은 용량을 차지하는 것 같아서 어플이 종료되면 삭제를 하도록 하고 싶어졌습니다.
코드는 아래와 같이 작성하시면 됩니다.

public class CustomActivity extends Activity {

    @Override
    public void onDestroy() {
        super.onDestroy();
        clearCache();
    }
    private void clearCache() {       
        final File cacheDirFile = this.getCacheDir();        
        if (null != cacheDirFile && cacheDirFile.isDirectory()) {
            clearSubCacheFiles(cacheDirFile);
        }
    }
    private void clearSubCacheFiles(File cacheDirFile) {
        if (null == cacheDirFile || cacheDirFile.isFile()) {
            return;
        }
        for (File cacheFile : cacheDirFile.listFiles()) {
            if (cacheFile.isFile()) {
                if (cacheFile.exists()) {
                    cacheFile.delete();                    
                }
            } else {
                clearSubCacheFiles(cacheFile);
            }
        }
    }

    ....
}

onDestroy() 메소드에 꼭 super.onDestroy()를 호출해주셔야 합니다. 안하시면 오류가 발생합니다.
반응형