0

我是 Android 新手,即将编写一个应用程序,允许用户离线编辑一些数据,然后在线时将其同步到某处服务器上的主数据库。

我假设为了让用户能够离线工作,我需要在 Android 设备上拥有一个数据库,该数据库可以通过内容提供程序/数据库适配器类进行更新。

我的问题是,我的本地数据库与服务器数据库的身份验证和同步的高级选项是什么?是否有任何常见/推荐的方法?我听说过在服务器上使用 RESTful API(但我对它们了解不多)——这是一种标准方法吗?

此外,是否有一种通用的方法来完成同步的频率 - 例如定期?在线时立即更改?

任何帮助将不胜感激,因为这对我来说是一个灰色地带。

4

1 回答 1

1

回答所有这些问题有点困难,因为它实际上取决于应用程序以及您希望它如何工作。但是,我肯定会研究 RESTful Web 服务。网上有很多很好的教程,但基本上你必须设置一个 Web 服务器,它可以接受 URL 中的参数,有时也可以接受 POST 正文中的数据。对于您的情况,它可能是带有数据的 POST,因此您可以将更新发送到数据库。

但是,还有一些其他问题,当然同步必须双向进行。如果服务器和移动客户端上的数据都发生了变化怎么办?你如何在那里解决冲突?

其次,关于多久同步一次的问题——这完全取决于您以及数据的时间紧迫性。当然,您在同步之间等待的时间越长,在线数据就越陈旧,并且在这两个地方被修改的可能性就越大。定期同步可能是一个好的开始,然后在连接恢复时添加同步,如果您发现几个同步周期已经过去而无法连接 - 例如,如果手机处于飞行模式。但是在定期同步时,您需要非常注意数据使用情况和电池电量,因此选择一个合理的时间段 - 也许每小时一次?并且仅在进行更改时才同步。

抱歉,在不知道您对数据的实际用例的情况下,我觉得我无法提供更详细的信息。

于 2012-10-01T14:22:02.823 回答