1

Android LruCache を適用して、アプリの速度を上げ、サーバーへの大量の呼び出しを回避したいと考えています。ここに私のシナリオがあります:

2 つの LruCache オブジェクトを作成しました。

private LruCache<String, List<Items>> mListItemsCache;

private LruCache<String, Items> mItemsCache;

mItemsCache は、一意の ID 文字列で取得できるすべてのアイテムのキャッシュを保持します。一方、mListItemsCache はすべての異なるアイテム リストをキャッシュします。各リストは、mItemsCache で利用可能なアイテムに基づいて作成されました。

私の質問は、mListItemsCache または mItemsCache から取得された Item は実際には同じ Object ですか?

put(K,V) により LruCache に格納されるたびにデータが複製されますか?

4

1 に答える 1

0

答えを得るには、さらに多くのコードが必要になると思います: アイテムとは何ですか? アイテムをバイト単位で測定するにはどうすればよいですか? 同じアイテムに対して 2 つのキャッシュが必要なのはなぜですか?

各文字列がキャッシュ オブジェクト (mItemsCache) へのキーであるリスト (mListItemsCache 用) を使用します。そのため、アイテムをキャッシュ (mItemsCache) に追加するたびに、次のようにリスト (mListItemsCache) にキーを追加します。mListItemsCache.add(myKey);

于 2012-12-01T12:29:28.310 に答える