Detener el adaptador de sincronización para sincronizar inicialmente cuando se utiliza addPeriodicSync

Estoy utilizando un adaptador de sincronización en mi proyecto que se sincronizará periódicamente. Para crear la cuenta para el adaptador de la sinc. Estoy utilizando el código abajo.

El problema que estoy enfrentando es que este código está desencadenando una sincronización inicial. La documentación no menciona en ningún lugar que este código hará que la sincronización se ejecute inicialmente.

De hecho, incluso en el proyecto de muestra de google hay código adicional para desencadenar una sincronización inicial que he eliminado.

He utilizado el código de este ejemplo: http://developer.android.com/samples/BasicSyncAdapter/index.html

Incluso si agrego el comando ContentResolver.cancelSync (account, null); El adaptador de sincronización sigue funcionando.

¿Cómo puedo detener el sincronizador de sincronización inicialmente. Debe sincronizarse por primera vez cuando haya transcurrido el período de intervalo de sincronización.

Account account = new Account(context.getPackageName(), context.getPackageName()); AccountManager accountManager = (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE); if (accountManager.addAccountExplicitly(account, null, null)) { // Inform the system that this account supports sync ContentResolver.setIsSyncable(account, context.getPackageName(), 1); // Inform the system that this account is eligible for auto sync when the network is up ContentResolver.setSyncAutomatically(account, context.getPackageName(), true); // Recommend a schedule for automatic synchronization. // The system may modify this based // on other scheduled syncs and network utilization. ContentResolver.addPeriodicSync(account, context.getPackageName(), Bundle.EMPTY, AppConstants.SYNC_INTERVAL); } 

Puede programar el evento futuro después de la primera sincronización manual.

 private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); private void setDelayedAutoSync() { ScheduledFuture<?> countdown = scheduler.schedule(new Runnable() { @Override public void run() { Log.d(TAG, "Out of time!"); ContentResolver.setSyncAutomatically(account, content_authority, true); ContentResolver.addPeriodicSync(account, content_authority, new Bundle(),SYNC_FREQUENCY_CONSTANT); }, SYNC_FREQUENCY_CONSTANT, TimeUnit.SECONDS); } 
  • Desiging una aplicación de Android con Sincronización sin conexión. ¿Debo usar SyncAdapter?
  • Cómo añadir un evento en un calendario para Android
  • Sincronización de varios proveedores con un SyncAdapter
  • ¿Cómo puedo obtener mi tipo de cuenta personalizada para que aparezca en la aplicación de contactos de Android?
  • Utilice SyncAdapter para sincronizar con * local * datos de aplicaciones de Gmail y Facebook
  • ¿Alguien implementó (o consiguió más información) en Android SyncObserver
  • ¿Cómo utilizo el Android SyncAdapter?
  • Algunas preguntas sobre el permiso "USE_CREDENTIALS"
  • ¿Cómo puedo añadir una categoría a mi SyncAdapter?
  • Android: Cómo escuchar cambios de contacto como WhatsApp
  • Mostrar configuración en cuentas y menú de sincronización para la aplicación de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.