반응형
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);
}
}
}
....
}
@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()를 호출해주셔야 합니다. 안하시면 오류가 발생합니다.
반응형
'안드로이드' 카테고리의 다른 글
안드로이드의 Touch Event 디스패치 단계 (0) | 2011.12.13 |
---|---|
[안드로이드] HttpClient 에 Timeout 설정하기 (0) | 2011.10.25 |
[안드로이드] OutOfMemory 왜 발생하는거야? (2) | 2011.10.24 |
[Android 문서번역] Avoiding Memory Leaks (메모리 누수를 피하는 방법) (0) | 2011.10.23 |
[안드로이드] 시스템 분석을 위한 쉘 명령어 (0) | 2011.10.21 |
TextView - 문자열 다루는 방법 (spannable) (1) | 2011.10.04 |
[자바] 자바 정규표현식(Regular Expression) (2) | 2011.09.29 |
[안드로이드] 프로세스별 메모리 사용량 분석 (0) | 2011.09.28 |
[안드로이드] repo 다운로드 받기 (3) | 2011.09.25 |
[안드로이드] 파일복사 어떻게 해야 빨라질까? (1) | 2011.09.22 |