将 Android 应用数据库与远程 API 同步的策略

Posted

技术标签:

【中文标题】将 Android 应用数据库与远程 API 同步的策略【英文标题】:strategy for syncing Android app database with a remote API 【发布时间】:2012-10-04 16:29:22 【问题描述】:

我正在开发一个 android 应用程序,它是远程 JSON Web 服务 API 的客户端(我构建了服务器,因此我拥有最大的灵活性)。

我正在尝试确定什么是保持本地 SQLite 数据库与远程 API 同步的好策略(在电池寿命、带宽和等待时间方面)。

我目前的想法是服务器将通过 GCM 通知 Android 应用任何操作(应该获取的新数据或应该更新的旧数据), 此外,用户将有一个刷新按钮来手动进行同步。

这种方法的缺点是,如果 GCM 消息“丢失”,则无法知道任何更新或新数据。

每当用户要求查看某些内容时,我都可以添加时间戳并检查新数据,但这并不能确定何时需要刷新 SQLite 数据库中的旧数据。

对改进此同步策略或我应该研究的任何其他方法有什么建议吗?

【问题讨论】:

【参考方案1】:

您可以让应用在收到 GCM 推送时向服务器发送收到的确认。然后,如果服务器在 X 时间范围内没有看到确认,它可以重新发送 GCM 推送。

【讨论】:

如果我只想将 GCM 用作附加功能以在用户打开应用程序时保持数据更新,而不是作为主要同步机制,该怎么办? 那就不要用它作为主要的同步机制……我想我没明白你的问题。

以上是关于将 Android 应用数据库与远程 API 同步的策略的主要内容,如果未能解决你的问题,请参考以下文章

Android 应用程序以异步方式将数据同步到远程服务器

Android 应用程序远程数据库同步

将 SQLite/Android 数据库表同步到远程 MySQL 数据库表(通过 PHP)

Android:使用 Messengers for IPC 实现同步/阻塞 API

在android中将SQLite数据库与远程mysql数据同步

Android/PHP - 同步本地和远程数据库的最佳方式