Chr*_*pix 12 android contacts contentobserver
只是尝试确定在使用registerContentObserver或其他方法时是否有一种简单的方法来确定哪些联系人发生了变化?我可以告诉数据库何时更改,但不确定每次更新/更改发生时我都要检查所有记录.
基本上,如果我有一个联系人列表,一个通过手动方法更新(即我更改联系人的电话号码或添加新的联系人),或自动(说ActiveSync照片添加,更改).我希望能够A)知道某些事情发生了变化,并且B)知道哪些联系人的某些数据发生了变化.
我正在尝试寻找某些用户,我可以从远程服务中匹配他们的照片.如果有更多信息添加到用户帐户,我希望能够检查它以查看它是否提供匹配.我不想安排它,我想在更新发生后这样做.
克里斯.
我不确定您目前正在注册哪个Uri更新,但是当您注册时,您ContentObserver是否只能注册一个直接指向您感兴趣的联系人的个人Uri?然后,您的观察者只会在您修改有趣的联系人时收到通知.SDK文档标题"Lookup URI"中的部分更多地讨论了这个:
http://developer.android.com/resources/articles/contacts.html
查找键对于每个记录(行)都是唯一的,所以我想你做的就是这样的事情吗?
Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
getContentResolver().registerContentObserver(lookupUri, false, myObserver);
Run Code Online (Sandbox Code Playgroud)
并为列表中的每个联系人执行此操作.
添加联系人
我可以看到这样做的最好方法是每次ContentObserver更改时重新查询游标到Contacts表(重新查询很快,即使你经常使用大量数据),并保持最高已知CONTACT_ID值.每当光标包含超出您存储的ID时,它就会被添加.
此外,如果你还没有看过这个对话,那可能是一个很好的阅读.Dianne似乎非常相信他们会保留内容更改的细节ContentObserver
干杯.
| 归档时间: |
|
| 查看次数: |
6697 次 |
| 最近记录: |