[英]In Android, should a contact sync adapter run in a separate process?
[英]Contact sync adapter in android
我想在我的应用程序中使用同步适配器来同步本机和第三方联系人(FB除外)与服务器。 (只有客户端到服务器单向同步)
我有两个疑问 -
1)如果设备中有多个同步适配器,并且如果脏位已被另一个同步适配器清除,我的同步适配器是否能够立即检测到联系人更改/更新。
2)我用过
ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1);
ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true);
将联系人与服务器同步。
它确实每隔30秒开始同步。
但是我想让它在添加或删除或更新联系人时立即得到通知以启动perfromSync操作。
我是否也需要使用观察者?
要查看对联系人的更改,您必须使用ContentResolver注册观察者。 同步API并非用于监视每个更改,它旨在成为Android为您自动定期运行的后台API,以便它可以批量操作并更有效地使用网络,而不是在禁用网络时运行等。 ..
脏位用于每个帐户。 通常,同步被设计为每个联系人具有“拥有”帐户,并且不是设计用于将所有联系人从设备导出到特定服务。 有一个聚合过程可以处理来自多个帐户的联系人加入一个“联系人”,如用户所见。 看到:
http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html
有关其工作原理的更多信息。
如果您打算将设备上的所有联系人导出到您的服务,则需要浏览联系人并为您的服务插入原始联系人。 然后,您还需要与观察者一起观看ContentResolver,以查看用户何时在某些服务上添加新联系人或定期查看表以查找尚未导出的联系人。
使用版本位 。 如果任何联系人编辑它会自动增加1。
所以你创建本地数据库,比较以前的版本和当前版本 。 如果发生任何更改,则触发更新查询。
更多信息请访问这里 。
此版本有助于我的同步更新。 所以我为所有人分享这个答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.