【问题标题】:Android Development - Data storageAndroid 开发 - 数据存储
【发布时间】:2015-12-13 19:11:43
【问题描述】:

我想创建一个应用程序,其中有一个按钮,每次单击此按钮时,屏幕上都会显示一些随机预设消息。我应该如何存储这些预设信息?我应该使用 SQLite 数据库还是应该创建一个填充了消息的数组并从那里检索消息?

我不是在寻找代码。我只是想要一些提示、建议或有人向我指出一些可能对我有帮助的文档。

【问题讨论】:

    标签: android database sqlite


    【解决方案1】:

    哦,我的第一反应是开始写一些代码,但既然你只想看看一些不同的选项,这里是我能想到的选项

    数组:对所有预设消息进行硬编码Array,然后使用 presetString[RandomNumber] 制作 Toast 消息。没什么太花哨的。几乎是直接的 Java 并添加了 toast 消息。 (有关 toast 消息和其他显示消息选项的信息可以在此处找到:http://developer.android.com/guide/topics/ui/notifiers/index.html) 优点:简单。查看代码并了解您的目标非常容易。缺点:处理非常长的列表的数组很麻烦,未来的更新可能会变得很麻烦。您也很难在程序的任何其他部分有效地使用它。

    strings.xml: http://developer.android.com/guide/topics/resources/string-resource.html Strings.xml 在我看来是更“Android 开发者”的方法。您使用所有可能的消息制作一个,然后通过资源名称将其加载到您的应用程序中。从那里它只是一个数组,您可以执行与通常相同的操作。 优点:由于它位于带有资源标识符的集中位置,因此程序的任何部分都可以使用它。具有与数组相同的基本功能 缺点:.apk 文件已签名,因此,您的资源无法在运行时修改。您在此处输入的消息无法添加或更改

    其他存储类型如JSON 可用。这些将类似于strings.xml,除了更多的优点;它们很容易从远程服务器加载。您的应用程序可以进行远程调用以请求完整的数组并从那里解析它http://damonsk.com/2010/01/jsonarray-httpclient-android/

    最后,您可以创建一个 SQLLite 数据库。对于这样一个看似简单的应用程序,使用它们将需要大量的开销。如果您正在寻找一种持久性解决方案(可以防止数据被使用)并且是可更改的,这将是首选。例如,假设您想让用户能够添加新条目,或者让用户更改消息或删除他们不喜欢的消息,那么这是合适的解决方案。主要关心的当然是,真的有必要吗?但如果是这样,那么您可以找到更多关于它的文档herehere (shows you how to copy a SQLLIte db 尽管在 Android 2.2 上存在一个错误会阻止您添加大小超过 1 兆字节的文件作为资产,但请注意,如果你真的有很多消息要添加,你需要在here 周围使用这项工作

    【讨论】:

    • 感谢您回答我的问题!对此,我真的非常感激。我想我会选择 strings.xml 路线。我想保持简单,因为我对 Android 开发和编程很陌生。
    【解决方案2】:

    如果用户可以创建新消息,那么使用数据库是有意义的,但如果消息带有 .apk 文件,那么只需将它们作为资源包含,将它们存储为 .json 或 .xml 文件。

    这还取决于您是否需要能够根据一天中的时间或位置选择消息,然后您可能需要多个文件或使用数据库。

    如果您使用数据库,您可以从文件或 url 中提取信息来填充它,因此,由于数据已经在带有 .apk 文件的文件中,如果您不这样做,请不要复制它。不需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      相关资源
      最近更新 更多