如何在Android上保存,更新和查看本地数据?

时间:2017-07-26 08:09:06

标签: java android local-storage

我从服务器下载城镇和城市名称列表作为JSON文件,并将它们解析为对象/字符串。我需要在下载后第一次启动应用程序时下载此数据一次,将此数据保存到Android设备的本地存储中,以用于填充微调器(下拉/组合框)菜单并仅在更新数据时用户想要/需要。实现这个的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

如评论中所述 -

如果您已经在使用它,可以将其保存在SQLlite数据库中。如果它的数据不是太多而你的应用程序并没有在任何地方使用SQLlite,那么看起来似乎有很多工作,那么你也可以将它保存在SharedPreference中。只是不要尝试在共享首选项中存储太多数据

答案 1 :(得分:0)

一些可能有用的策略,常见的逻辑是:

  • 仅需一次的静态数据策略:****

    1. 检查您要查找的数据是否存在于本地存储中。
    2. 从存储中获取数据
  • 您可能需要多一次的数据策略,并且您没有来自服务器的版本控制:

    1. 检查您要查找的数据是否存在于本地存储中。
    2. 检查该数据是否已更新至最新版本
    3. 如果为true - 从存储中获取该数据
    4. 如果为false - 从存储中删除数据并下载最新数据。
  • 您可能需要多一次的数据策略,并且您可以从服务器进行版本控制:

    1. 获取您的本地数据版本 - 如果不存在则转到第5阶段
    2. 与服务器核实您的版本是最新的。
    3. 如果是最新的 - 从本地存储中获取数据
    4. 如果旧 - 从服务器插入数据
    5. 从存储中获取数据

本地存储选项:

  1. SharedPreferences - 这是一种键/值类型的存储空间,非常适合小事情,但根据我的经验,您也可以在这里保存大数据,但我不建议这样做。
  2. Room - android的新Persistence Library
  3. SugerORM - 第三方图书馆,非常受欢迎
  4. GreenDAO - 第三方图书馆,也很好,很受欢迎
  5. Other Database libraries - 基于Sql和NonSql的解决方案
  6. 最旧的学校 - 使用OutputStreamWriter
  7. 将数据保存到文件中

    结论:

    选择似乎可以帮助您完成当前和未来任务的方式,您使用这些选项的方式是相同的(使用我在顶部编写的策略)但使用不同的方法。

    我不知道你的项目规模是什么,这就是为什么你必须为你选择正确的方式。

    祝你好运! = d