2012-11-13 45 views
1

我想提高我的應用程序速度,並避免通過應用Android LruCache對服務器進行大量調用。這是我的場景:Android Lrucache參考/對象是否重複?

我已經創建了2個LruCache對象。

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

private LruCache<String, Items> mItemsCache; 

mItemsCache將緩存所有可以通過唯一Id字符串檢索的項目。另一方面,mListItemsCache將被緩存在所有不同的Items列表中。每個列表都是基於mItemsCache上的可用項目構建的。

我的問題是,從mListItemsCache或mItemsCache檢索的項目實際上是相同的對象?

數據每次存儲到LruCache時是否都會被複制(K,V)?

回答

0

我想更多的代碼將是必要的給你一個答案: 什麼是項目? 如何用字節來衡量項目? 爲什麼你需要兩個相同的項目緩存?

我會使用List(for mListItemsCache),其中每個String是緩存對象(mItemsCache)的關鍵字。因此,無論何時將項添加到緩存(mItemsCache),都要將該項添加到列表(mListItemsCache) ,例如: mItemsCache.put(myKey,Items); mListItemsCache.add(myKey);

+0

很好哦項目將剛剛從SQL行獲取任何特定的對象,這樣的字段ID,姓名等...讓我們覺得對於實例項目是歌曲的信息和名單將是一個播放列表...所以基本上都他們使用相同的對象項目nomatter項目集合的緩存或集合的項目集合的緩存將是最好的只是持有相同的對象項目。 List >可以更改爲List ,其中CollectionItemsObject持有對項目列表^。^的引用,以獲得更清晰。 –