您应该查看 Android SDK 演示中的 SampleSyncAdapter 项目(使用同步适配器传输数据)。它向您展示了如何进行同步“Android 风格”,无需用户交互,只需手动点击同步按钮即可。
最重要的是,您需要编写能够为您的 SyncAdapter 提供自上次提交以来所有更改的“增量”的服务器软件。最基本的方法是在您的应用程序中保留“上次同步”时间戳,该时间戳必须来自服务器,否则您可能会因为客户端和服务器之间的时间差异而遇到麻烦。将所有时间戳标准化为 GMT 或您选择的任何时区,但请坚持该决定。如果您的应用程序需要在本地时间显示时间戳,那么您需要使用 Java Calendar 和 TimeZone 类将规范化的时间戳转换为本地时间。
您的应用程序还需要将更改的本地记录标记为“脏”,以便您的 SyncAdapter 知道它需要将这些更改或新记录上传到服务器。
您的服务器软件需要以下最低功能:
- 更新现有记录功能
- 添加新记录功能
- 获取自上次同步以来的更新记录(应用程序提供时间戳)
- 获取自上次同步以来的新记录(应用程序提供时间戳)
您可能还想通读一些 Google API(如 Google Calendar)以了解所有这些工作原理以及如何设计用于通信的服务器 API 接口。