当前位置: 移动技术网 > IT编程>移动开发>Android > Android 手机通讯录修改联系人失败的坑

Android 手机通讯录修改联系人失败的坑

2018年02月16日  | 移动技术网IT编程  | 我要评论

炫浪,qir,红玉头冠

Android 手机通讯录修改联系人失败的坑,一般我们添加联系人的时候,是通过查询 raw_contacts 表的 _id 字段,获取最末尾的 _id 值 +1 便是该表中需要添加的 contact_id 值。

一般情况下,contact_id 的值应该和 _id 的值是相等的。但是在第三方应该的大量增删改查下,会出现 contact_id 和 _id 不相等的情况。也就是说,即使你在代码中存入的 contact_id 为当前的 _id 值,但真正执行数据库操作时,存入的确实之前 contact_id + 1 的值。

可是,contact_id 的值和 _id 值不相同会导致什么情况呢。

根据网上的资料,大部分开发者查询联系人时,是使用 raw_contacts 表的 contact_id 值和 data 表的 raw_contact_id 进行匹配。如果 raw_contacts 表中的contact_id 值和 _id 值相等时,可以正常使用。一旦 contact_id 值和 _id 值出现不相等的情况,就会出现修改联系人失败甚至修改到其他的联系人这些情况。

为什么呢?原因是系统默认使用 raw_contacts 表的 _id 值和 data 表的 raw_contact_id 进行匹配。所以当我们拿到 raw_contacts 表的 contact_id 值去查找病修改联系人时,出现失败的情况。

所以,我们在开发的时候,尽量使用 raw_contacts 表 _id 值对 data 表的 raw_contact_id 值进行匹配。从而不会导致匹配失败的问题。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网