2011-02-07 3 views
3

Android 애플리케이션을 개발 중이며 단일 애플리케이션에서 여러 액티비티간에 공유 할 수있는 2 레벨 이미지 캐시를 구현하는 가장 좋은 방법을 알 수 없습니다.Android : 액티비티간에 이미지 캐시 공유

예 :

응용 프로그램은 3 개 활동 (A, B 및 C)를 가지고 있으며, 인수를 위해 A가 B를 호출하고 B가 C를 호출하고 C 각 활동에서 다운로드 한 이미지를 표시 A.를 호출 말할 수 있습니다 웹 및 나는 asynctask를 사용하여 각 활동에서 이미지를 다운로드하고 표시합니다. 이제 같은 이미지를 여러 번 다운로드하지 않도록 이미지 캐시를 추가하고 싶습니다.

지금은 각 액티비티가 이미지를 다운로드하고 뷰를 적절하게 업데이트하는 간단한 asynctask의 새 인스턴스를 시작합니다. 물론 다운로드가 진행되고 다운로드가 완료되면 캐시를 업데이트하기 전에 이미지 캐시를 확인하기 위해 기본 asynctask를 업데이트하기는 쉽지만 캐시를 만들고 초기화하는 방법은 달라 붙습니다. 어떤 생각이라도 감사 할 것입니다.

+0

을 확장? – androidworkz

답변

2

당신은 앱의 매니페스트에이를 추가 할 수 있습니다

응용 프로그램 안드로이드 : = "에서는 MyApplication을"이름 (...)

당신은 그 이름을 "이 클래스를 만들 수 있습니다 내 응용 프로그램". 그러면 해당 활동을 통해 해당 수업을 사용할 수 있습니다. 비동기 호출을하기 전에 이미 사용할 적절한 이미지가 있는지 확인하십시오. 가지고 있다면, "캐시 된"것을 사용하고, 그렇지 않으면 새로운 것을 얻을 수 있습니다. 당신은 (어떤 임의의 문자열을 얻기 위해이 경우) 이런 식으로 뭔가를 시도 할 수 있습니다 :

의 ArrayList myStrings = ((하여 MyApplication) this.getApplication을()) getRandomStrings를().

희망이 도움이되었습니다. :)

편집 : 잊지 마십시오이처럼 "에서는 MyApplication"를 만들 :

공용 클래스에서는 MyApplication 왜 SD 카드에 이미지를 넣어하지 응용 프로그램

+0

감사합니다. 핵심은 응용 프로그램 작업을 확장하는 것이 었습니다. – tsr

+0

당신이 내 대답을 받았다면 그것을 표시하십시오. :) – Peres