将REST服务与Android应用程序同步

时间:2013-05-08 06:03:25

标签: android rest android-service android-syncadapter

我使用REST服务来填充数据库中的信息,稍后我的应用程序会使用该服务。 我已经阅读了几个关于这个问题的线程,现在必须决定我希望REST服务和我的数据库之间的同步如何工作。

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

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

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

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

  • 我找不到Android同步的好文档(一些第三方文章,如these,但没有正式的Google或Android Developers指南)
  • 根据这篇文章搞乱同步适配器可能会导致操作系统崩溃和重启等重大问题。

我发现的大部分信息都很旧,所以也许事情发生了变化,但我的应用程序应该使用API​​等级8以上,所以我非常感谢任何建议和有价值文档的链接。< / p>

2 个答案:

答案 0 :(得分:3)

绝对使用SyncAdapter。按照此处的说明操作:Why does ContentResolver.requestSync not trigger a sync?

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

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

答案 1 :(得分:0)

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

演示如何设置Google Task API数据与本地SQLite数据库的同步。