Hag*_*i L 10 android android-contentresolver android-contentprovider android-syncadapter
我正在构建一个严重依赖用户联系人的应用程序.
我已经创建了一个Account并RawContacts在需要时代表此帐户创建.
我使用SyncAdapter,事情很棒.
但我仍然错过了这个难题的一些部分:
我正在尝试实现类似于WhatsApp的行为.这样 -
当任何联系人的姓名或电话发生变化时 - 它将被发送到服务器进行评估.
这个联系人是否已经在"我的"中RawContacts,他是否刚刚由用户创建.
我知道有ContentObserver但是跟踪ContactsContract.Contacts.CONTENT_URI似乎是错误的事情,因为它没有给出具体的改变,加上它被提升到很多次,并且从许多不感兴趣的事件.
我知道WhatsApp正在使用SyncAdapter,但我认为他们可能会做更多的事情.
任何想法将不胜感激.
ContentObserver跟踪ContactsContract.Contacts.CONTENT_URI确实是一条出路。
当您使用以下条件onChange()查询raw_contacts表时:
String where = "(rawcontacts.dirty = true or rawcontacts.deleted = 1) and rawcontacts.account_type = <your_custom_type>"
Run Code Online (Sandbox Code Playgroud)
结果将为您提供添加、更新或删除的联系人。
如果您有兴趣了解更多详细信息 - 您需要订阅的原因ContactsContract.Contacts.CONTENT_URI是联系人提供程序当前不会通知 onChange() 中修改了哪些联系人。这是因为applyBatch()交易中多个联系人可能会发生变化。将来可能会有一种订阅子集的方法 - 但目前还没有。
| 归档时间: |
|
| 查看次数: |
885 次 |
| 最近记录: |