2017-07-26 91 views
-2

我正在從服務器下載城鎮和城市名稱列表作爲JSON文件,並將它們解析爲對象/字符串。我只需要在下載後第一次啓動應用程序時下載此數據一次,將此數據保存到Android設備的本地存儲中以用於填充微調器(下拉菜單/組合框)菜單並僅在更新數據時纔會更新數據用戶想要/需要。什麼是實施這個最好的方法?如何在Android上保存,更新和查看本地數據?

+0

如果您已經在使用它,您可以將它保存在SQLlite數據庫中。如果它的數據不是太多,而且你的應用程序不在任何地方使用SQLlite,它可能看起來很多工作,然後你可以將它保存在SharedPreference中。 –

+0

謝謝!我將使用SharedPreferences。它看起來像我需要什麼。 – GorkemSahin

+0

共享首選項用於存儲少量數據,而SQLite數據庫用於大量數據 –

回答

0

正如在評論中提到 -

,如果你已經在使用它你可以將其保存在SQLlite DB。如果它的數據太少,而且你的應用程序不在任何地方使用SQLlite,它可能看起來有很多工作,然後你可以將它保存在SharedPreference中。只是不嘗試存儲太多的數據共享偏好

0

一些策略,可能會幫助,共同邏輯是:


  • 爲你只需要一次靜態數據策略:** **

    1. 檢查您查找的數據是否存在於本地存儲中。
    2. 從存儲獲得這些數據

  • 策略,你可能需要更多然後一旦數據,你必須從服務器沒有版本控制:

    1. 檢查您尋找的數據存在於本地存儲中。
    2. 檢查該數據被更新到最新版本
    3. 如果爲真 - 從存儲
    4. 如果虛假獲取的數據 - 從存儲刪除數據,並下載最新的數據。

  • 策略的數據,你可能需要更多的那麼一次,你有從服務器版本控制:

    1. 獲取本地數據版本 - 如果不存在移動到階段5
    2. 與服務器檢查您的版本是否是最新的。
    3. 如果是最新的 - 從本地存儲
    4. 得到的數據。如果舊的 - 從服務器中插入數據
    5. 從存儲獲得的數據

本地存儲選項:

  1. SharedPreferences - this是一種重要/價值類型的存儲,對於小事來說很好,但根據我的經驗,您也可以在這裏保存大數據,但我不會這麼建議。
  2. Room - Android的新的持久性庫
  3. SugerORM - 第三方庫,很好的和流行的
  4. GreenDAO - 第三方庫,也很好的和流行的
  5. Other Database libraries - SQL和NonSql基礎的解決方案
  6. 最舊學校 - 將數據保存到文件使用OutputStreamWriter

結論:

選擇什麼似乎可以幫助您處理當前和未來的任務,您使用這些選項的方式是相同的(使用我在頂部編寫的策略),但使用不同的方法。

我不知道你的項目規模是什麼,這就是爲什麼你必須爲你選擇正確的方式。

祝你好運! = D