2014-10-27 70 views
0

我以JSON的形式從服務器獲取數據,並且必須在Listview中顯示。現在我想知道的是,每次從服務器獲取數據並直接顯示在listview中會更好。或者我應該先檢索數據 - >保存在sqlite>然後從那裏填充它..是值得花費額外的努力涉及sqlite在應用程序?什麼是正確方法:Json - > ListView或Json - > Sqlite - > ListView?

+0

如果你想要做緩存,同步,共享,或過濾,使用SQLite。否則,我真的看不到這一點。 – LightYearsBehind 2014-10-27 12:53:42

回答

1

如果你從一個RESTful API服務器獲取信息(從它似乎什麼的),你有兩種方法:

如果您的服務器改變了數據經常

  • 獲取來自服務器的信息。
  • 填充您的列表(不要將其保存在SQlite中)。

如果您的服務器需要一些時間來改變數據

  • 從服務器獲得的信息。 (第1次)
  • 保存SQLite中
  • 填充在一段時間列出
  • 一次
    • 檢查服務器,如果當前的數據散列有效
    • 如果是,什麼都不做
    • 如果不是,重新開始這個cicle。

這是我的做法將使。

3

SQLiteDatabase僅用於存儲數據。如果你不需要在設備上存儲數據,我個人會認爲你應該填充數據。

+0

這是一個意見,而不是一個答案。不是你的錯,首先這是一個糟糕的問題。 – 323go 2014-10-27 13:09:51

0

如果每次你想,那麼你應該使用SQLite選項去顯示出類似的數據。 SQLite會將數據存儲在本地的設備中,每次你沒有從服務器獲取數據,因此節省了響應時間。

0

可能有兩個原因去「SQLite的緩存」,但最有可能你想在應用程序的後臺狀態加載數據。假設用戶在加載數據時按下home按鈕。然後,如果您直接在「活動」中執行此操作,那麼當用戶返回到您的應用程序時,他需要等待數據加載。另一方面,您可以將您的加載轉移到服務中,將數據保存到SQLite中,然後在您的活動中從數據庫加載數據。從用戶的角度來看,這會讓您的應用更加快速。但是在開發你的應用程序時你必須處理更多的組件。

1

正如其他人已經概述的那樣,sqlite可以在你需要時存儲數據,例如,在離線情況下。不過,我不建議將你的JSON數據緩存在sqlite中,因爲你不得不花時間寫存儲層來獲得緩存。我會推薦的是一個庫,它已經爲你緩存了數據,而且你不必關心存儲。 例子:Robospice爲Android(https://github.com/stephanenicolas/robospice/wiki/Starter-guide