2012-10-18 3 views
1

내 앱에서 뉴스 페이지를 구현 중입니다. 페이지에서 새로운 이미지를 다운로드하여 휴대 전화에 저장하고 싶습니다.새 이미지 만 다운로드

내 질문 : 어떤 이미지가 다운로드되었는지, 어떤 이미지가 다운로드되지 않았는지 어떻게 알 수 있습니까?

나는 이미지를 yymmddhhss.png로 저장하려고 생각하고 있었지만 엉뚱한 것처럼 보였다. 누군가 url.hashCode() 구현을 사용하는 것을 보았지만 그것이 무엇을하는지 확신 할 수 없어서 제 응용 프로그램에서 작동하는지 확실하지 않습니다.

구현에 내장 함수 또는 파일 이름 트릭을 사용하고 싶습니다. DB 또는 환경 설정을 마지막으로 다운로드 한 이미지의 이름/날짜를 저장하도록 설정하지 않았 으면합니다.

+0

당신이 출시를 통해 이미지를 캐시하려고 -

이 간단한 예는 MD5를 얻으려면? 데이터베이스가 무거운 것에 동의하십시오. 이것이 어떤 종류의 rss/atom 피드라고 가정하면 이미지의 파일 이름에 기사의 URL을 추가하거나 원본 파일 이름 만 사용하면됩니다. – speakingcode

+0

[Fedor 's] (http://stackoverflow.com/ 사용자/95313/fedor) [지연로드] (http://stackoverflow.com/a/3068012/450534)? 이 솔루션은 실제로 어떤 파일 이름으로 저장되었는지 신경 쓰지 않는 경우에 유용합니다. 어떤 이유로 든 문제가 발생하면 Lazy Loading이 요구 사항 목록에 정확하게 맞지 않습니다. –

+0

URL의 이름을 사용하여 불법 문자를 제거하지 못하는 이유는 무엇입니까 (즉, 이미지 URL의 알파 숫자 문자열 만 추출). 이 방법은 항상 일치하고 항상 일관성을 유지하며 죽은 사람은 말할 것도없이 ... – dineth

답변

2

hashCode()를 사용하지 마십시오. 그것은 자바에 따라 다릅니다. more-hashCode()를 더 자세히 살펴보면

Java 응용 프로그램을 실행하는 동안 동일한 객체에서 두 번 이상 호출 될 때마다 equals 비교에 사용 된 정보가없는 경우 hashCode 메소드가 항상 동일한 정수를 반환해야합니다. 개체의 이름이 수정됩니다. 이 정수는 응용 프로그램의 한 실행에서 같은 응용 프로그램의 다른 실행으로 일관성을 유지할 필요가 없습니다.


가장 쉬운 해결책은 md5 전체 URL로하고 파일 이름을 것을 사용합니다. 일관된 파일 이름 길이를 제공하고 다른 이미지와의 충돌 가능성을 최소화합니다. 파일을 작성한 시간부터 바로 검색 할 수 있기 때문에 이름에 날짜를 추가 할 필요가 없습니다. Example

+0

+1, "Do not Go with the Flow"라는 남자를 위해 !! 유지하다. – MKJParekh

+0

이 방법으로 모든 이미지의 이름이 정확합니까? banner1.jpg, banner2.jpg, banner3.jpg 등 – Rawr

+0

을'md5'와 같이 사용하면 중복 파일 이름의 가능성이 통계적으로 매우 매우 미미합니다. 당신의 목적을 위해, 당신은 이름 충돌에 대해 걱정하지 않아야합니다. – kungfoo