2011-06-21 33 views
0

我有一個活動,它有一個由適配器支持的畫廊,並且數據通過網絡緩慢檢索。我希望能夠切換到全屏模式並使用由相同適配器支持的圖庫。我不想因爲切換到全屏模式而重新加載網絡上的所有數據。我是否需要臨時緩存數據(大約100個對象,其中每個對象包含一個字符串和幾張圖像),然後重新加載全屏活動,還是有更好的方法?我嘗試在全屏活動中獲取對原始圖庫的引用,但findViewById()返回null。切換到全屏時緩存數據

+0

與您一樣的聲音應該被緩存,而不管是否切換活動。如果用戶離開您的應用程序並回來,他們是不是應該下載他們剛剛在2分鐘前下載的100件東西? – dymmeh

+0

在大多數情況下,是的。但是,我正在開發的應用以類似於StumbleUpon的方式檢索內容,StumbleUpon每次使用該應用時都會有所不同。 – Jackson

+0

好吧,這是有道理的。當用戶從視圖中滾動時會發生什麼?當它返回到屏幕上時,你是否必須重新下載該視圖的內容?如果你不得不重新加載它,那麼緩存將是必不可少的。另外,你可以在你的全屏活動中使用緩存的數據 – dymmeh

回答

0

對於圖像,您可以使用LRU緩存(在磁盤和內存中)。至於對象 - 使用序列化。

+0

他們是最終會有一堆東西,而不是圖像的對象,所以我可能不得不使它們可序列化。一旦我找出這個工作,我會將其標記爲正確的答案。在下一步中使用SQLite數據庫嗎? – Jackson

+0

您可以使用數據庫或實現對象的Parcelable接口。 –

+0

因此,如果我讓我的對象Parcelable,將它們的ArrayList存儲在一個Bundle中,當我開始活動時使用putExtras()傳遞Bundle,並在子活動中檢索對象的ArrayList,那應該有效嗎? – Jackson