【问题标题】:determine if contact book is changed on Android确定是否在 Android 上更改了通讯录
【发布时间】:2015-11-03 05:11:01
【问题描述】:

如果通讯录有任何更改,我正在开发将联系人上传到服务器的功能。 我发现的一种方法是查询 ContactsContract.Data 的 DATA_VERSION 列并将每个联系人的版本保存到应用特定的共享首选项,稍后在 requery 表中检查是否有任何版本不匹配。

但这显然太重了,因为我所需要的只是一个布尔值,是否整个通讯录都被触摸了。

请注意,我无法通过ContentObserver 执行此操作,因为当应用程序未运行时,地址簿可能会更改。

有没有办法为整个通讯录生成校验和并稍后检查?

【问题讨论】:

  • 你应该看到这个:stackoverflow.com/questions/5733775/…
  • @eric247 没有解决问题,在帐户同步后,脏字段会被清除,这会在修改联系人后几分钟发生。虽然我需要检查当前的通讯录是否与以前的通讯录不同(可能几天前被触及)。

标签: android


【解决方案1】:

好吧,我想我会自己回答这个问题。我最终只是查询 Data.CONTACT_LAST_UPDATED_TIMESTAMP 并将最新时间保存在共享首选项中。下次只需查询时间晚于保存时间的条目的表。这可能会再次遍历整个表,但绝对比缓冲所有版本更快、更有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多