Android 手机通讯录修改联系人失败的坑
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 值进行匹配。从而不会导致匹配失败的问题。
上一篇: 洛谷P2181 对角线(组合数)
下一篇: 慈禧为什么要*光绪?真的是他咎由自取吗