2011-02-07 17 views
3

私はAndroidアプリケーションを開発しており、1つのアプリケーションで複数のアクティビティで共有できる2レベルのイメージキャッシュを実装する最良の方法を理解できません。Android:アクティビティ間でイメージキャッシュを共有する

例:

アプリケーション3つの活動(A、B、及びC)を有し、議論のために、AがBを呼び出し、BがCを呼び出し、Cは、各アクティビティからダウンロードしたイメージを表示するA.を呼び出すと言うことができウェブと私はasynctaskを使って画像をダウンロードして表示しています。今度は同じイメージの複数のダウンロードを避けるためにイメージキャッシュを追加したいと思います。

今、各アクティビティは、イメージをダウンロードして適切にビューを更新する単純なasynctaskの新しいインスタンスを開始します。ダウンロードが完了したらキャッシュを更新する前にイメージキャッシュをチェックするために基本的なasynctaskを更新するのは簡単ですが、キャッシュを作成して初期化する方法と場所は決まっていません。いかなる考えも認められるだろう。アプリのマニフェストにこれを追加することができます

+0

を拡張:?作成し、あなたのこのような "MyApplicationを" とは忘れないでくださいおかげさまで – androidworkz

答えて

2

アプリケーションアンドロイド: = "MyApplicationを"(...を)名前

をあなたはその後、 "名前を持つクラスを作成することができます私のアプリケーション"。その後、そのクラスをアクティビティ全体で使用できます。非同期呼び出しを行う前に、使用するイメージが適切かどうかを確認してください。もしあなたが持っていれば、あなたは "キャッシュされた"ものを使います。もしそうでなければ、新しいものを得ることができます。あなたは、(いくつかのランダムな文字列を取得するには、この場合には)このような何かを試すことができます。

のArrayList myStrings = ((MyApplicationという) this.getApplicationを())getRandomStringsを();。

これはあなたを助けました。 :)

編集:

パブリッククラスMyApplicationをSDカードに画像を入れない理由 アプリケーション

+0

キーは、アプリケーションタスクを拡張することでした。 – tsr

+0

私の答えを受け入れるなら、それに印を付けてください。 :) – Peres

関連する問題