У меня есть адаптер синхронизации, который синхронизирует мои контакты с сервером и возвращает меньшее количество контактов, зарегистрированных в моем приложении. Я добавляю свою учетную запись приложения в эти контакты и добавляю их в контакт с телефонной книгой. я реализовал класс наблюдателя, который наблюдает, если есть какие-либо изменения в моей телефонной книге-контактов (например, добавление, редактирование или удаление), как показано нижеДобавление контакта с помощью адаптера синхронизации делает синхронизацию синхронизации синхронизацией в бесконечном цикле
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);
Делая это, синхронизация адаптер входит в бесконечный цикл и сохраняет синхронизацию контактов с сервер.
Я могу предположить, что это может произойти из-за добавления контакта, и наблюдатель снова и снова запускает синхронизирующий адаптер при добавлении контакта с помощью адаптера синхронизации.
метод OnChange MyObserver класса, как:
@Override
public void onChange(boolean selfChange, Uri changeUri) {
mResolver.requestSync(mAccount, AUTHORITY, new Bundle());
}
Пожалуйста, помогите мне решить, как можно синхронизировать контакты только тогда, когда пользователь вручную изменять контакты телефонной книги, а не при синхронизации адаптер добавляет контакт. Спасибо