android – ContentObserver手动更新联系人

我已经从服务中注册一个ContentObserver,当电话有更新时,我会得到onchange()函数,如电话或联系人更新.但我希望只在发生添加,更新或删除调用onchange()函数.但我不希望呼叫是传入还是传出.那么有人能告诉我哪些URI可以在contentObserver中注册?我的代码在这里
getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI,true,new Contact_change());

和Contact_change.java类一样

public class Contact_change extends ContentObserver{

  public Contact_service() {
    super(null);
  }

  @Override
  public void onChange(boolean selfChange){
    Log.i("contact_service","onchange");
    Super.onChange(selfChange);
   }

 @Override   
 public boolean deliverSelfNotifications() {
  return true;
  }

}

编辑:
我还有一个问题是,如果我在联系中进行更改后停止服务,那么也会调用onchange()函数.那么我怎么能停止它或取消注册contentobserver.

解决方法

我使用了如 here所述的ContactsContract.Contacts.CONTENT_VCARD_URI.

你也可以设置一个here那样的threshold_time

它的效率更高一点.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...