在Android上使用SyncAdapter实现双向同步

3
我计划在我的安卓应用程序上创建sqlite表格。数据通过webservice从服务器获取。
我想知道最好的方法是什么。我应该将数据从webservice传输到sqlite数据库文件并合并它,还是应该将所有数据作为soap请求获取并解析成表格,或者我应该使用rest调用。
通常数据大小为2MB,有100个列。
请建议我可以快速获取此数据,并且减少设备负载的最佳情况。
我的工作流程如下:
1.下载一组20000个地址并将其保存到设备sqlite数据库中。此操作仅在第一次运行应用程序或要刷新整个应用程序数据时才进行。
2.更新此记录,每当服务器更改时。
3.现在,我可以从服务器获取此数据,格式可以是JSON、XML或纯SqLite文件。我想知道将这些数据存储到Android数据库中的最快方法是什么。
我尝试了以上所有方法,并发现从服务器获取数据库文件并将数据复制到数据库比以XML或JSON格式获取数据并解析它快。请建议我是否正确。

嗨,任何评论都将不胜感激。谢谢。 - Adi
1个回答

1
如果您计划使用同步适配器,则需要实现内容提供程序(或至少一个存根)和身份验证器。这里是一个很好的示例,您可以参考。
此外,您还没有更多地解释这样的Web服务用例,以决定建议什么Web服务架构。但REST是编写服务的良好风格,并且由于数据格式效率,建议使用JSON而不是XML(最好尝试协议缓冲区)。
是的,同步适配器更好用,因为它们已经提供了一组您想要实现的出色功能,否则将作为后台服务编写(例如,周期性同步,自动同步,指数回退等)。
为了减轻设备负载,您可以实现由内容提供程序支持的同步适配器。上传/下载数据时,您会序列化/反序列化数据。当您需要持久保存来自服务器的数据时,可以在内容提供程序中使用bulkInsert()方法并在事务中持久保存所有数据。

嗨,Raghavendra,请查看已编辑的部分,我现在已添加了工作流程..希望这有所帮助..如果您需要更多信息,请告诉我,顺便感谢您的帖子,我现在更了解bulkintsert和协议缓冲区.. - Adi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接