2013-12-10 39 views
1

Im從Web服務器加載數據並將結果呈現在列表視圖中。代碼工作正常,但列表爲空,直到數據完成從AsyncTask加載並且每當用戶離開屏幕並返回時,列表必須再次加載。我在我的應用程序中有多個列表,我採用相同的方法,當我的所有列表必須每次都加載整個數據時,它看起來很笨拙和錯誤。AsyncTask和listview - 如何避免每次加載所有數據

因此,現在我正在考慮將數據存儲在某個地方,以便我可以顯示舊數據,直到從服務器獲取新數據,然後使用新數據更新列表。

所以我的第一個問題是,我應該在哪裏存儲這些數據?在一個文件中?或者我應該創建一個SQLite數據庫並將列表對象存儲在那裏?

因爲我在應用程序中有多個列表,我認爲數據庫方法是最好的解決方案。然後,我可以獲取給定對象/表的最新插入標識,並檢查服務器是否有新數據要檢索。

我也讀過關於AsynTaskLoader類,它似乎做什麼即時通訊尋找,但我真的找不到任何良好的指南要遵循。因爲我已經有了AsyncTask的全部工作,所以實現這個加載器可能是太多不必要的工作。

所以是什麼將這個問題的建議方法?

我從服務器返回的數據是一個JSONArray,並使用SimpleAdapter來創建我的列表。

讓我知道你是否需要看到任何代碼。

在此先感謝!

+0

參考http://developer.android.com/reference/android/net/http/HttpResponseCache.html –

+0

好吧,謝謝我會考慮這個:) –

+0

沒問題,如果您認爲緩存包含您的JSON數據的http響應是您的情況的正確答案,請讓我知道,並且我會將意見部分中的建議轉移到答案部分。 –

回答

1

緩存包含您的JSON數據的http響應:使用this作爲參考。

此外,將進度對話框(一個旋轉不確定時間的對話框)放在進程對話框中始終是個好主意,然後在準備顯示數據時關閉進度對話框。

0

我不確定這是好的答案,但我解決了這個方法。

它是唯一一個設置變量標識符...

啊這是非常簡單的階躍響應你這樣的傢伙問題 但它是非常重要的事情很多程序員錯過 並在Android中,使用的AsyncTask認可同樣變量標識符此相同,即使是存在的另一個片段

保持在你的心中,並嘗試這個東西

相關問題