【问题标题】:Contacts backup and sync application联系人备份和同步应用程序
【发布时间】:2011-07-26 19:39:40
【问题描述】:

我正在处理联系人备份和同步。

目标是将所有联系人的所有详细信息发送到服务器(自定义协议定义)作为备份。

在应用程序的初始启动期间,所有联系人将排队并发送到服务器。 之后,后台服务将一直运行,它会监听新的联系人添加/联系人更新,并且这个新/更新的联系人将由后台服务发送到服务器。

我正在使用RawContactsEntity 获取记录。

我尝试在 RawContacts/Data 表上使用ContentObserver 来获取联系人添加或联系人更改的通知。但是,AFAIK,ContentObserver 会通知 (onChange()) 整个表中的更改数据,而不是单个记录的 ID。

现在我的问题是,如何获得更改/新记录的确切 ID?

我想创建一个备份表来与本地联系人表进行比较并获取更改的记录。但是随着触点数量的增加,性能会急剧下降,这也会影响电池寿命。

您能否建议我,从性能和内存使用的角度来看,实现此联系人备份操作的最佳方式? 联系人同步操作还有其他方法吗?

如果有人可以分享可以帮助我的示例,那将非常有帮助。

【问题讨论】:

    标签: android contacts android-contacts contentobserver rawcontacts


    【解决方案1】:

    如果联系人存储在您的帐户中(AccountManger),Android 将在原始联系人中标记脏标志。如果不是您的帐户,则您不能信任脏标志,因为帐户同步适配器可能已将联系人更新到服务器并重置脏标志。您唯一的选择是重新上传完整的联系人(简单且易于编码)或跟踪 RawContacts 中的版本列并检查哪个已更改。实际上不建议从其他帐户复制和上传联系人,因为相应的同步适配器无论如何都会保留这些联系人的备份。就像 Google 会在他们的服务器上拥有一份 Google 联系人的副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多