2011-03-24 7 views
6

¿Alguien sabe que cuando tiene autosync habilitada, con qué frecuencia se sincronizan las cuentas de Google para varias aplicaciones? Sé que es casi instantáneo para Gmail, pero ¿qué hay de otras cosas? p. si tengo una aplicación de Picasa que usa SyncAdapter para sincronizar fotos locales en línea, ¿con qué frecuencia se llamará al método onPerformSync?Android AutoSync Intervalo de ejecución?

Además, ¿se puede anular este intervalo?

Respuesta

2

AutoSync se activará al cambiar en DataSources.

Por ejemplo. Si tiene un Contacts SyncAdapter que está configurado para la sincronización automática, se llamará a onPerformSync cuando haya un cambio en Contacts después de un retraso de 30 segundos.

+0

Finalmente también descubrí que son 30s. ¿Puedo cambiar este intervalo a algo más alto? – Taranfx

+0

Parece que no podemos configurarlo. Pasé algún tiempo buscando aplicaciones de AccountManager, no pude encontrar nada. – Sukumar

1

encontré otro trabajo en torno a configurar este retraso (Esto podría dar lugar a otros efectos secundarios, consulte más abajo paso con cuidado)

Ésta es mediante el uso de combinación de ContentObserver y AccountManager API. A continuación se muestran los pasos:

  1. Registre un ContentObserver en la base de datos de contactos.
  2. En cualquier cambio en Contactos db, se activará el cambio de su contenidoObservador. Dentro de esta función, cancele las SyncRequests pendientes como a continuación. `ContentResolver.cancelSync (cuenta, ContactsContract.AUTHORITY);
  3. Ahora programe la sincronización según el tiempo requerido.

Lo anterior tendrá el efecto secundario de garantizar que ContentObserver esté vivo todo el tiempo y no es recomendable.

Cuestiones relacionadas