将 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 同步的策略的主要内容,如果未能解决你的问题,请参考以下文章
将 SQLite/Android 数据库表同步到远程 MySQL 数据库表(通过 PHP)
Android:使用 Messengers for IPC 实现同步/阻塞 API