2013-01-22 5 views
0

디버깅 방법이 확실하지 않은 매우 신비한 문제가 있습니다.디버깅에 도움이 필요합니다. DownloadManager에서 다운로드 한 이미지가 갑자기 사라졌습니다.

내 응용 프로그램에서 수행하려는 작업은 이미지를 다운로드하여 갤러리에 표시하는 것입니다. 그러나 때로는 단순히 사라지게됩니다 (모두가 아님). 응용 프로그램을 사용하지 않을 때에도. 지금까지 제거 기능을 구현하지 않았으므로 응용 프로그램 내에서 아무 것도 발생할 수 없습니다. DownloadManager는 잠시 후 제거 할 수 있습니까? BitmapFactory를 사용하여 파일을 디코딩합니다. 이것은 관련 될 수 있습니까?

신체에 어떤 힌트가 있습니까?

감사합니다.

편집 : 그냥 분명하게 말하십시오. 파일은 두 가지 방법으로 다운로드됩니다. 첫 번째 시작에서 하나, 매 X 분마다 서비스로 두 번째. 내가 그 서비스를 꺼 놓았는지 확인하기 위해서. 이미지 초기화가 완료되면 모든 것이 정상적으로 작동합니다. 그러나 얼마 후 (예를 들어 2 시간 후에) 일부가 사라집니다.

+0

쉽다 : SD 카드에 파일이 있는지 또는 파일을 저장했는지 확인하십시오. 존재한다면, 당신은 문제가 당신 편에 있다는 것을 압니다 (아마도 DownloadManager는 파일을 다운로드하기 만하면됩니다). 이미지로드/표시/캐싱 방법에 코드를 게시해야합니다. – dymmeh

+0

@dymmeh 게시물을 분명하게 편집해야 할 수도 있습니다. 예, 다운로드됩니다. Astro 파일 관리자를 사용하여 파일 관리자가 있는지 확인했습니다. 오늘 그것은 두 번 일어났습니다. 2 시간 후에 한 번. 나는 코드를 게시하게되어서 기뻐하지만 어떤 부분을 확신하지 못한다. – wonglik

+0

항상 모든 것을 다 처리하는 것이 좋습니다. 일단 비트 맵을로드하면 캐싱 하시겠습니까? – dymmeh

답변

0

캐시가 가득 찼습니까? 참조가 가비지 수집되지 않았 음을 확인 했습니까?

+0

예. 꽉 찼습니다. 메모리의 마지막 이미지가 제거되고 표시되는 이미지로 바뀝니다. 참조 및 가비지 수집기가 중요한 이유는 무엇입니까? 그것들은 메모리에없는 드라이브에있는 파일입니다. – wonglik

+0

캐시에서 바로 읽는 이미지를 표시한다고 가정합니다. 캐시에서 항목을 일단 제거하면 메모리에 존재하지 않지만 이미지를 삭제하지 않는 한 sdcard/flash에 남아 있습니다. 원하는 이미지를 캐시로 다시로드 해보십시오. 전체 앨범을 메인 메모리에 저장할 수 없을 것입니다. 따라서 현재 표시되는 이미지에 따라 캐시를 동적으로 다시 채우는 방법을 알아야 할 수도 있습니다. – paulczak

+0

이미지가 캐시에없는 경우 카드에서로드됩니다. 이것은 잘 작동합니다. 문제는 파일이 사라진다는 것입니다. Astro 파일 관리자에서이 오류가 의심 스럽기 시작합니다 (새로운 시작을 테스트 할 때 파일을 제거하는 데 사용하고 있습니다). – wonglik