2
Guavaで文字列キーをソフトキーにする必要がありますか?グアバでソフトキーにするには文字列キーを作ってください。
私はそれを単純なビットマップキャッシュに使用しています。
private final ConcurrentMap<String, Bitmap> imageCache = new MapMaker()
.softValues()
.expireAfterAccess(IMAGE_EXPIRATION_TIMEOUT, TimeUnit.SECONDS)
.makeComputingMap(new Function<String, Bitmap>() {
public Bitmap apply(String key) {
Log.d(TAG, "Image loaded");
Bitmap bm = null;
try {
URL aURL = new URL(key);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
} catch (Exception e) {
Log.w(TAG, e);
}
return bm;
}
});
私はCacheBuilderについて知っています。しかし、GoogleのHTTPクライアントはまだr9に依存しています。 –
私のイメージキャッシュにWeakKeyを使用するのですか? –
@AlexeyZakharov:いいえ、あなたは弱いキーを必要としません。 'String'キーでは、' == '等値ではなく' .equals'等号を使ってキーを比較したいので、2つの異なる 'String'オブジェクトが等しいとみなされます。 r9に依存するgoogleのHTTPクライアントまでは...私は '@ Beta' APIを使用しないと想像していますので、r9を10.0.1に安全に置き換えることができます。 – ColinD