小编典典

如何将Android数据库与在线SQL Server同步?

sql

我正在开发一个Android应用,该应用在Android平台提供的内置SQLite中存储不同类型的数据。

在应用程序内部,我放置了一个“同步”按钮,该按钮应该用于在本地SQLite数据库与服务器上的在线SQL Server数据库之间同步数据。

解决此问题的解决方法是什么?可以在Google日历中找到此功能,您可以在其中查看移动设备上日历的事件,添加新事件并同步数据时,也可以通过转到在线帐户来查看更新的数据。

注意:我不想在线集中数据库,因为我还想让移动用户能够在没有互联网连接的情况下使用该应用程序。


阅读 192

收藏
2021-04-15

共1个答案

小编典典

您应该看一下Android
SDK演示中的SampleSyncAdapter项目(使用同步适配器传输数据)。它向您展示了如何进行“ Android风格”同步,该操作不需要用户交互,方法是始终手动点击同步按钮。

最重要的是,您需要编写服务器软件,该软件能够为SyncAdapter提供自上次提交以来的所有更改的“增量”。最基本的方法是在应用程序中保持“最后一次同步”时间戳,该时间戳必须来自服务器,否则,由于客户端和服务器之间的时间差异,您可能会遇到麻烦。将所有时间戳标准化为GMT或您选择的任何时区,但要坚持这一决定。如果您的应用需要在本地时间显示时间戳,则需要使用Java
Calendar和TimeZone类将标准化的时间戳转换为本地时间。

您的应用还需要将已更改的本地记录标记为“脏”,因此SyncAdapter知道它需要将这些已更改或新的记录上载到服务器。

服务器软件需要以下最低功能:

  • 更新现有记录功能
  • 添加新记录功能
  • 获取自上次同步以来的更新记录(应用程序提供时间戳)
  • 自上次同步以来获取新记录(应用程序提供时间戳)

您可能还需要通读一些Google API(例如Google Calendar),以了解所有这些工作原理以及如何设计用于通信的服务器API接口。

2021-04-15