Android SoftReferenceの使い方

SoftReferenceクラスを使うと、キャッシュのようなものを簡単に用意できます。大きなリソースを扱うBigObjectClassがあるとして、それをキャッシュするには、次のようなクラスを用意します。BigObjectClassは別途インスタンス生成が必要です。

public class BigObjectCache {
  private static HashMap<String,SoftReference<BigObjectClass>> cache =
    new HashMap<String,SoftReference<BigObjectClass>>();
  public static BigObjectClass get(String key) {
    SoftReferece<BigObjectClass> ref = cache.get(key);  
    if (ref != null) {  
      return ref.get();  
    } else {
      return null;
    }
  }
  public static void set(String key, BigObjectClass image) {
    cache.put(key, new SoftReference<BigObjectClass>(image));
  }
}
同じタグの記事: Android
同じカテゴリの記事: Android
関連書籍: Android