【问题标题】:Updating an internal SQLite Database after the app has been published应用发布后更新内部 SQLite 数据库
【发布时间】:2017-01-17 00:00:45
【问题描述】:

我对 AndroidStudio 非常陌生,想创建自己的项目。 我的问题是:

  1. 您可以在重新发布您的应用程序之外更新数据库吗?

    • 假设我已经发布了应用程序并且数据库当前是空的。然后稍后我想添加一些数据如何将这些数据添加到数据库而无需更改基本源代码或重新开发应用程序?我正在使用 SQLite。

我想将此应用程序发布为网络应用程序。那就是我希望所有用户从“空”数据库和填充的任何内容中查看相同的信息。你们能否给我一个方向或网络应用程序/他们的要求的最小功能示例。我以前从未使用或开发过它们。

END_RESULT:

  • 用户应该下载一个应用程序(这个应用程序)并能够收集添加到其提要中的新闻。
    • 维护人员应该能够通过数据库合理地添加/填充应用程序,而不必在每次添加新材料时重新部署应用程序。

【问题讨论】:

  • 您可以让您的应用在启动时从您的服务器下载最新的 SQLite 数据库。
  • 算了,我用过网络应用、Snapchat、社交媒体应用等。但我从未开发过任何大声笑 -- 再次感谢。

标签: android sqlite android-sqlite


【解决方案1】:

您必须实现某种与您的应用通信的服务器后端才能下载新数据。该应用程序必须已经具有如何处理该数据并将其本地存储在 SQLite 中的逻辑,但这可能相当简单。至于如何同步或下载新数据,有几种可能。

  1. 在应用启动时执行同步。如果您使用其他一些(周期性)机制,您可能希望也可能不希望这样做。
  2. 使用 JobScheduler 安排定期同步。这是一个很好的做法,因为 JobScheduler 不必在特定时间运行您的任务,它可以在特定时间窗口内运行它,以便您的任务与其他需要运行任务的应用程序相吻合。由于您的任务会启动无线电并发出网络请求,因此系统可以让其他需要无线电的应用同时运行,以减少无线电唤醒次数(从而提高电池效率)。
  3. 实施 Google Cloud Messaging,以便您的后端可以向您的应用发送推送通知,并且您的应用可以接收此作为执行同步的信号。

请注意,您不仅限于其中之一。

【讨论】:

  • 这听起来不仅困难,哈哈,而且很有趣,乍一看听起来//效率很高。我也会调查一下。
【解决方案2】:

可以,如果您添加 实时数据库

这是一个托管在服务器上而不是直接在手机上的数据库,它可以将信息推送到客户端以在其上同步新数据。

否则,您需要更新应用以获取新内容。

实现这一目标的一个绝妙工具是 Firebase。

https://firebase.google.com/docs/database/

【讨论】:

  • 谢谢!我一定会调查的。
【解决方案3】:

这是一个非常广泛的问题,因此很难提供具体的答案。 “在重新发布应用程序之外更新数据库”是什么意思?

  1. 您的意思是更新数据库架构 - 是的,可以做到。

  2. 将数据放入数据库 - 是的,拥有数据库的应用程序可以根据其业务逻辑随时执行此操作。这意味着插入数据的源代码应该已经嵌入到您发布的应用程序中。唯一应该即时决定的是何时执行此代码。 通常对于联网的应用程序,启动应用程序时刷新数据是一种常态。这意味着您可以在应用程序的主屏幕启动中进行网络调用,然后下载您想要下载的任何内容并将其放入数据库。您的维护人员可以将数据放在服务器上并让应用下载。

  3. Android 有大量的网络库,选择取决于您下载的内容类型。建议尝试 Volley(Google 官方)和 Retrofit(如果你想要更流畅的东西)

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 2015-12-25
    • 2011-10-28
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    相关资源
    最近更新 更多