использование AccountManager addAccountExplicitly занимает много времени для первой синхронизации

Я использую AccountManager addAccountExplicitly(), чтобы добавить учетную запись в AccountManager. тогда я звоню

ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true);

После этого, когда я смотрю на экран «Учетные записи и синхронизация» устройства, я вижу свою учетную запись, НО когда я нажимаю, я вижу, что флажок «Синхронизировать контакты» не появляется. Это может занять несколько минут, прежде чем оно появится...

Выяснил, что если я слушаю добавляемую учетную запись и после задержки (2 секунды) звоню:

ContentResolver.requestSync(account, ContactsContract.AUTHORITY, new Bundle());

Он синхронизируется.

1.почему синхронизация аккаунта занимает время? 2. Это правильный способ немедленной синхронизации учетной записи? (это всегда будет работать?)


person dors    schedule 18.08.2011    source источник


Ответы (1)


У меня была аналогичная проблема, и мне помогла отредактированная часть этого ответа. Первый цикл синхронизации бесконечно

При первой синхронизации вызовите cancelSync и повторите попытку синхронизации.

ContentResolver.cancelSync(account, authority);

person satyadeepk    schedule 14.09.2013