Синхронизация предназначена в качестве фоновой службы.15 секунд кажутся вполне разумной задержкой перед началом синхронизации, особенно если добавление новой учетной записи (должно быть?) Является очень редким событием.Другая мысль заключается в том, что если у вас есть дюжина активных учетных записей, вы можете попытаться подумать о том, как уменьшить это число.Сайт с несколькими учетными записями одновременно?
Вы беспокоитесь об отзывчивости при первоначальной настройке или у вас есть какой-то вариант использования, требующий частого добавления и удаления учетных записей?
Если последний, посмотрите тольковключение и выключение ContentResolver.setIsSyncable()
для данной пары контент / учетная запись.Если установлено значение false, флажок на странице учетных записей неактивен, и синхронизация не будет выполняться.Это может удовлетворить ваши потребности лучше, чем создание и уничтожение учетной записи.
Тем не менее, вы можете попробовать ускорить его.
вручную вызовите ContentResolver.requestSync (Account account, String authority, Bundle extras)
и посмотрите на дополнительные значения, определенные в ContentResolver.Вы можете попробовать SYNC_EXTRAS_MANUAL
и SYNC_EXTRAS_EXPEDITED
.
Более экстремальный случай (который может действительно разозлить ваших пользователей, если вы испортите его ...), был бы для сохранения текущегосостояние основной синхронизации, а затем явным образом отключите основную синхронизацию (ContentResolver.setMasterSyncAutomatics (логическая синхронизация)) и нажмите синхронизацию с SYNC_EXTRAS_MANUAL
, чтобы переопределить, а затем восстановите основную синхронизацию до ее исходного состояния после завершения синхронизации.
Вопрос в том, как это сделать ... Я бы подумал, что вам нужно использовать это в коде создания учетной записи в вашем приложении.