ContentObserver手动更新联系人

Nen*_*ncy 7 android contactscontract

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

getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true,new Contact_change());
Run Code Online (Sandbox Code Playgroud)

和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;
  }

}
Run Code Online (Sandbox Code Playgroud)

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

mad*_*mad 0

我使用了此处提到的ContactsContract.Contacts.CONTENT_VCARD_URI

你也可以设置一个threshold_time,就像这里提到的那样

它的效率更高一些。