9

有一个 REST 服务用于在我的数据库中填充信息,稍后我的应用程序将使用它。我已经阅读了有关此事的几个主题,现在必须决定我希望 REST 服务和我的数据库之间的同步如何工作。

想象一个应用程序,它从谷歌金融 API 获取有关股票的信息并将其存储在数据库中,在应用程序启动时显示信息,并在股票价格发生特定事件时发送通知。

我已经实现了当用户手动请求同步时启动的 AsyncTask 的简单选项。现在我必须实现自动同步,这些是我找到的选项:

  • 创建一个Service将进行同步的
  • 使用同步适配器/同步提供程序

所以我发现第二种选择有很多优点,特别是视频中解释的那些,但也有两个主要缺点:

  • 我找不到很好的 android 同步文档(一些第三方文章,例如这些,但没有官方的 Google 或Android 开发人员指南)
  • 根据这篇文章,在同步适配器中搞砸可能会导致操作系统崩溃和重启等重大问题。

我发现的大部分信息都很旧,所以也许从那以后事情发生了变化,但我的应用程序应该可以使用 API 8 级及更高级别,所以我非常感谢任何建议和有价值文档的链接。

4

2 回答 2

3

绝对要使用 SyncAdapter。请按照此处的说明进行操作: 为什么 ContentResolver.requestSync 不触发同步?.

要执行 SyncAdapter,您还需要创建一个 Account/AccountAuthenticator,以便您的 SyncAdapter 知道如何登录您的服务——除非它确实是 Google Finance API,在这种情况下,您需要做的就是应用清单中的正确权限,以便它将使用手机上已有的帐户设置。

你没有链接你提到的讨论崩溃的文章,但我知道,它实际上是在谈论帐户——是的,你确实需要小心。

于 2013-05-08T15:22:40.780 回答
0

结帐https://github.com/sschendel/SyncManagerAndroid-DemoGoogleTasks

演示如何将 Google Task API 数据同步到本地 SQLite 数据库。

于 2014-10-28T02:10:41.140 回答