title: Adding contact using sync adapter makes sync adapter keep syncing in infinite loop
body: <p>I have implement a sync adapter which sync my contacts with server and return fewer contacts which are registered on my application. I add my app-account to these contacts and add them to my phonebook contact.
  I implemented an Observer class which observes if there is any change in my phonebook-contacts(like add,edit or delete) as below</p>
  
  <pre><code>protected void onCreate(final Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
  
      mAccount = CreateSyncAccount(this);
      ContentResolver.setSyncAutomatically(mAccount, AUTHORITY, true);
  
      mResolver = getContentResolver();
      mUri = new Uri.Builder()
              .scheme(SCHEME)
              .authority(AUTHORITY)
              .path(TABLE_PATH)
              .build();
      TableObserver observer = new TableObserver();
      mResolver.registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, observer);
  </code></pre>
  
  <p>By doing this, sync adapter goes into infinite loop and keeps syncing contacts with server.</p>
  
  <p>I can guess that it may happened because of adding the contact and the observer starts sync-adapter again and again while adding contact using sync adapter.</p>
  
  <p>MyObserver Class's onChange method is like:</p>
  
  <pre><code>@Override
      public void onChange(boolean selfChange, Uri changeUri) {
          mResolver.requestSync(mAccount, AUTHORITY, new Bundle());
      }
  </code></pre>
  
  <p>Please help me to solve it out how can I sync contacts only when user manually modify contacts of phonebook, not when the sync-adapter adds the contact.
  Thanks</p>