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