我以JSON的形式從服務器獲取數據,並且必須在Listview中顯示。現在我想知道的是,每次從服務器獲取數據並直接顯示在listview中會更好。或者我應該先檢索數據 - >保存在sqlite>然後從那裏填充它..是值得花費額外的努力涉及sqlite在應用程序?什麼是正確方法:Json - > ListView或Json - > Sqlite - > ListView?
回答
如果你從一個RESTful API服務器獲取信息(從它似乎什麼的),你有兩種方法:
如果您的服務器改變了數據經常
- 獲取來自服務器的信息。
- 填充您的列表(不要將其保存在SQlite中)。
如果您的服務器需要一些時間來改變數據
- 從服務器獲得的信息。 (第1次)
- 保存SQLite中
- 填充在一段時間列出
- 一次
- 檢查服務器,如果當前的數據散列有效
- 如果是,什麼都不做
- 如果不是,重新開始這個cicle。
這是我的做法將使。
SQLiteDatabase僅用於存儲數據。如果你不需要在設備上存儲數據,我個人會認爲你應該填充數據。
這是一個意見,而不是一個答案。不是你的錯,首先這是一個糟糕的問題。 – 323go 2014-10-27 13:09:51
如果每次你想,那麼你應該使用SQLite選項去顯示出類似的數據。 SQLite會將數據存儲在本地的設備中,每次你沒有從服務器獲取數據,因此節省了響應時間。
可能有兩個原因去「SQLite的緩存」,但最有可能你想在應用程序的後臺狀態加載數據。假設用戶在加載數據時按下home按鈕。然後,如果您直接在「活動」中執行此操作,那麼當用戶返回到您的應用程序時,他需要等待數據加載。另一方面,您可以將您的加載轉移到服務中,將數據保存到SQLite中,然後在您的活動中從數據庫加載數據。從用戶的角度來看,這會讓您的應用更加快速。但是在開發你的應用程序時你必須處理更多的組件。
正如其他人已經概述的那樣,sqlite可以在你需要時存儲數據,例如,在離線情況下。不過,我不建議將你的JSON數據緩存在sqlite中,因爲你不得不花時間寫存儲層來獲得緩存。我會推薦的是一個庫,它已經爲你緩存了數據,而且你不必關心存儲。 例子:Robospice爲Android(https://github.com/stephanenicolas/robospice/wiki/Starter-guide)
- 1. WPF ListView-> GridView-> StackPanel
- 2. EF - > WCF - > JSON
- 3. 什麼是定義<content>標籤的正確方法?
- 4. Mongo JSON文檔 - > JSON - > BSON
- 5. MS SQL - > ASP.NET - > JSON
- 6. Image-> JSON - >。Net Image
- 7. 什麼是「 - >」的正確術語,即$ class-> method()
- 8. - >, - > *和。*運算符的正確名稱是什麼?
- 9. PHP:什麼是「 - >」和「=>」?
- 10. ListView和ArrayAdapter <String>
- 11. 什麼是C++ >>>操作
- 12. 什麼是(int - > int) - >(int - > int)是什麼意思?
- 13. 爲什麼-1 >> 1是-1?而1 >> 1是0!
- 14. 的Zend $此 - > _ helper-> JSON返回數組,而不是JSON
- 15. NSArray的轉換 - > JSON - >的NSData - > PHP服務器 - > JSON表示
- 16. rspec MissingTemplate error on:format =>:json方法
- 17. 在monad的聲明中,lambda表示法「m >> n = m >> = \ _ - > n」的這個方程是什麼?
- 18. Listview - > ViewCell - > StackLayout:不是整個內容顯示出來
- 19. 方法<ClassName>是什麼意思?
- 20. onItemClick <string-array> strings.xml(不是ListView/ArrayList)
- 21. 爲什麼<$>和<*>的輸入順序是>> =?
- 22. 什麼是<%= ... %>
- 23. JSON的正確語法是什麼?
- 24. 什麼是<#= #>
- 25. JSON解析 - > stringify - >解析破壞?
- 26. Rails 3中,:JSON => @ model.to_json OR:JSON => @model
- 27. 表以JSON - >從<tr> IDS
- 28. Webpack - Yaml - > JSON - >提取文件
- 29. PHP中「 - >」語法的正確術語是什麼?
- 30. 根據列表填寫ListView <Items>
如果你想要做緩存,同步,共享,或過濾,使用SQLite。否則,我真的看不到這一點。 – LightYearsBehind 2014-10-27 12:53:42