android监听系统联系人修改

这篇博客介绍了如何在Android中使用ContentObserver监听系统联系人变化,但避免因通话更新导致的onChange()误触发。作者通过记录raw_contacts表中的version字段值,比较更新前后变化来判断是否真正修改了联系人。
摘要由CSDN通过智能技术生成

android系统使用ContentObserver去监听系统联系人时有个很恶心的地方,由于contact表中记录了联系人最近通话时间的字段,所以就是打个电话也会触发onchange()方法,为了解决这个问题,搜集的很多信息,发现联系人数据库中的raw_contacts表中有个version字段,记录了这个联系人数据被更改的次数,幸运的是,打电话时不会改变这个字段的值,所以我使用了hashMap去记录了这个字段的值,当onchange()方法被调用时,比较数据库中raw_contacts表对应的version值是否有变化,有变化的话就判断这个联系人被修改了,否则就说明只是打了电话,这个方法我试验的时候是没有问题的,暂时也没想到什么更好的办法,如果有什么问题,或者有更好的方法,欢迎留言,好了,不说废话,上代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值