2011-11-22 3 views
0

이미지를 다운로드하고 내부 메모리에 저장하고 있습니다. 이로 인해 앱 캐시가 매우 빠르게 성장할 수 있습니다. 그것은 여기에 제안으로내부 저장소 사용 - 안드로이드 - 캐시 파일 삭제

:

장치가 내부 저장 공간이 부족

http://developer.android.com/guide/topics/data/data-storage.html, 안드로이드 공간을 복구하기 위해이 캐시 파일을 삭제할 수 있습니다. 그러나 이러한 파일을 정리하기 위해 시스템에 의존해서는 안됩니다. 당신은 항상 캐시 파일을 직접 유지하고 1메가바이트으로 소비 공간의 합리적 제한, 같은 내에서 유지되어야

내 질문은 캐시가 20메가바이트 주위에 지금 예를 들면, 너무 큰 얻고 아직도 성장하면 무슨 일이 일어날 것입니다.

인터넷 연결이 가능하면 앱을 시작할 때마다 가이드 라인을 따라 삭제해야한다고 생각했습니다.

String[] allFiles = fileList(); 

Log.e(TAG, "allFiles.length: " + allFiles.length); 


for(int k=0; k<allFiles.length; k++) 
{ 
Log.e(TAG, "allFiles [ " +k+"]: "+allFiles[k]); 

} 

그러나이 코드는 항상 0 개의 파일을 반환합니다. 특정 이미지에 액세스하려고하면 내부 메모리에서 쉽게 검색 할 수 있습니다. 이 코드가 모든 이미지가있는 배열을 반환 할 수없는 이유는 무엇입니까 ?? 내부 메모리 따라야 할 올바른 접근 방식을 무엇

.. 사전에

감사합니다,

안드레아스

+0

전체 파일 이름 검색 논리가 포함되지 않은'fileList()'내에 있습니다. 이 코드를 게시하지 않으면 왜 이것이 작동하지 않는지 알 수있는 방법이 없습니다. – kabuko

+0

문제없이 개별적으로 각 이미지 (파일 이름)에 액세스 할 수 있습니다! 문제는 위의 링크에서 제안 된대로 내부 메모리의 모든 파일 목록을 가져 오려는 경우입니다. 위의 메서드는 항상 0을 반환합니다! – andreasv

+0

아, 내 실수. 나는'fileList()'가 Context에 있는지 몰랐다. 어쨌든 나는 그것을 신경 쓰지 않을 것이다. 'getCacheDir'의 폴더에 저장하고 있다면'getCacheDir(). listFiles()'를 사용하십시오. – kabuko

답변

0

누군가 다른 어제 비슷한 질문을했다. 그 중 하나는 Here's my answer입니다. 그러나 캐시의 전체 크기를 제한하거나 캐시에 파일을 보관하는 시간을 제한 할 수 있으며 문제가 해결되어야한다는 점이 중요합니다.

+0

답변 해 주셔서 감사합니다. 요점은 어떻게 그 파일에 액세스하고 URL의 해싱을 저장하는 txt를 사용하지 않고 ttl을 배치합니까? 어떻게 크기를 제한해야합니까? 우리는 항상 내부 기억에 대해 이야기하고 있습니다! – andreasv

+0

메인 포스트에 댓글을 달았으므로 관련 라인을 게시하지 않으면 코드에 어떤 문제가 있는지 알 수있는 방법이 없습니다 ... 크기를 제한하는 한 LruCache를 사용하고 sizeOf 메소드를 재정의 할 수 있습니다 캐시 된 파일의 크기를 리턴 한 다음 캐시에서 축출시 파일을 삭제하십시오. http://developer.android.com/reference/android/util/LruCache.html – kabuko

+0

미안하지만 이것은 내가 묻는 것과는 완전히 관련이 없습니다 ... 내 문제는 위의 코드를 보면 파일이 나열되지 않은 것입니다 Android 개발자 사이트에 제안 된대로 존재하는 경우. 답변 해 주셔서 감사합니다. – andreasv