我使用REST服务来填充数据库中的信息,稍后我的应用程序会使用该服务。 我已经阅读了几个关于这个问题的线程,现在必须决定我希望REST服务和我的数据库之间的同步如何工作。
想想一个应用程序,它从谷歌财务API获取有关股票的信息并将其存储在数据库中,在应用程序启动时显示信息,并在股票价格中发生特定事件时发送通知。
我已经实现了AsyncTask的简单选项,该选项在用户手动请求同步时启动。现在我必须实现自动同步,这些是我找到的选项:
Service
所以我发现第二个选项有很多优点,特别是那些在this视频中解释的选项,但也有两个主要缺点:
我发现的大部分信息都很旧,所以也许事情发生了变化,但我的应用程序应该使用API等级8以上,所以我非常感谢任何建议和有价值文档的链接。< / p>
答案 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数据库的同步。