В моем приложении я хочу убедиться, что автоматическая синхронизация должна быть активирована после установки моего приложения и входа пользователя. Для этой цели я использую следующий код:Синхронизатор Android синхронизируется часто с небольшими интервалами
am = AccountManager.get(MainActivity.this);
account = am.getAccountsByType(AccountGeneral.ACCOUNT_TYPE)[0];
if(!ContentResolver.isSyncActive(account, CloudKiboDatabaseContract.AUTHORITY)) {
ContentResolver.setSyncAutomatically(account, CloudKiboDatabaseContract.AUTHORITY, true);
ContentResolver.requestSync(account, CloudKiboDatabaseContract.AUTHORITY, new Bundle());
}
Этот код работает при запуске приложения. Если синхронизация не активна, она запускает ее автоматически.
Однако я проверил на своем сервере, что он синхронизируется с сервером на очень малых интервалах. Как я могу дать ему больший интервал времени? или дать ему график?
Мне кажется, что ContentResolver.requestSync()
вызывает синхронизацию на очень малом интервале.
Пожалуйста, дайте мне знать, если есть хорошее решение, которое также следует лучшим практикам.
Дополнительная информация: Я использую адаптер синхронизации и менеджер учетных записей в своем приложении.
Это не мешает синхронизации на очень короткие промежутки времени. Однако он работает, удаляется ли последняя строка или нет. Я удалил последнюю строку. Я бы заглянул в предоставленную ссылку. –
Если ваша основная проблема заключается в том, что даже автосинхронизация вызвана очень часто, вы можете установить [интервал вручную] (https://developer.android.com/training/sync-adapters/running-sync-adapter.html#RunPeriodic) , ** вместо ** автоматической синхронизации (интервал настройки уставок не сбрасывает автосинхронизацию). 'ContentResolver.addPeriodicSync ( СЧЕТОВ, AUTHORITY, Bundle.EMPTY, SYNC_INTERVAL);' – VadymVL
Да, я видел этот метод по ссылке вы предоставили. Этот параметр не устанавливает a-sync как true в настройках. Пользователь должен перейти к настройкам, чтобы установить синхронизацию как истину –