2017-07-26 89 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