2012-10-17 87 views
1

我需要一個建議。我正在創建一個具有多個List活動的Android應用程序。從列表中選擇項目,生成另一個列表,並從第二個列表中選擇項目,顯示圖像。所有數據(用於列表以及圖像)都來自Web服務器。我已經在PHP中創建服務將數據提供給Android應用程序。我想盡可能地優化應用程序。我的問題是,什麼更好,一次從服務器獲取所有數據,或者當用戶選擇一個項目時只提取相關數據。針對android應用程序結構的推薦/建議

第一種方法(我能想到的)的加點是用戶將不得不等待第一次。數據加載後,應用程序將運行得更快,因爲不會有任何進一步的服務器調用。消極點(我能想到)是應用程序將消耗更多的內存。

爲了使應用更加高效和用戶友好,我應該遵循哪種方法?

回答

1

您應該觀看Reto Meier的Google IO 2012對話 - https://www.youtube.com/watch?v=PwC1OlJo5VM

其中他談到了移動無線電,並解釋了爲什麼它更好地延長電池續航時間以便一次獲取所有數據。這是一個偉大的談話,值得。

除非在列表視圖中有瘋狂的數據量,否則內存不應該成爲問題。

1

根據我的建議,不要採取第一種方法(一次提取數據),因爲假設您現在有小數據,但如果您想到未來,則會給您帶來問題。因此,不是一次獲取所有數據,而是在必要時進行。您也可以使用延遲加載的概念,以便您獲得良好的結果。懶惰地提取數據將是很好的做法。

對於延遲加載這裏是一些資源: -

Android: Implementing progressbar and "loading..." for Endless List like Android Market

Lazy load of images in ListView

Lazy Load images on Listview in android(Beginner Level)?

因此,我建議你使用惰性加載概念,您的要求。希望這可以幫助。