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

将Android应用程序数据库与远程API同步的策略,android,database-design,architecture,Android,Database Design,Architecture,我正在开发一个Android应用程序,它是一个远程JSON webservice API的客户端。我构建了服务器,所以我有最大的灵活性 我正试图决定在电池寿命、带宽和等待时间方面,什么是保持本地SQLite数据库与远程API同步的好策略 我目前的想法是,服务器将通过GCM通知Android应用程序任何操作,无论是应获取的新数据还是应更新的旧数据, 此外,用户将有一个刷新按钮手动执行同步 这种方法的缺点是,如果GCM消息丢失,则无法了解任何更新或新数据 我可以在用户要求查看某些内容时添加时间戳并检

我正在开发一个Android应用程序,它是一个远程JSON webservice API的客户端。我构建了服务器,所以我有最大的灵活性

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

我目前的想法是,服务器将通过GCM通知Android应用程序任何操作,无论是应获取的新数据还是应更新的旧数据, 此外,用户将有一个刷新按钮手动执行同步

这种方法的缺点是,如果GCM消息丢失,则无法了解任何更新或新数据

我可以在用户要求查看某些内容时添加时间戳并检查新数据,但这并不能解决确定何时需要刷新SQLite数据库中已有的旧数据的问题


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

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

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

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