Estoy trabajando en una copia de seguridad y sincronización de contactos.Aplicación de copia de seguridad y sincronización de contactos
El objetivo es enviar todos los detalles de todos los contactos a un servidor (protocolo personalizado definido) como una copia de seguridad.
Durante el inicio inicial de la aplicación, todos los contactos se pondrán en cola y se enviarán al servidor. Y después de eso, se ejecutará un servicio en segundo plano todo el tiempo que escuchará la nueva actualización de contacto/adición de contacto, y este contacto nuevo/actualizado será enviado al servidor por el servicio en segundo plano.
Estoy usando RawContactsEntity para ir a buscar los registros.
Intenté usar ContentObserver
en las tablas RawContacts/Data para recibir una notificación de adición de contacto o cambio de contacto. Pero, AFAIK, el ContentObserver
da la notificación (onChange()
) de los datos modificados en la tabla como un todo y no la identificación del registro individual.
Ahora mi problema es, ¿cómo obtener las identificaciones exactas de registros modificados/nuevos?
Pensé en crear una tabla de respaldo para compararla con la tabla de contactos nativos y obtener los registros modificados. Pero a medida que aumenta el número de contactos, el rendimiento disminuirá drásticamente y esto también obstaculizará la duración de la batería.
¿Puede sugerirme, la mejor manera de lograr esta operación de copia de seguridad de contactos desde el punto de vista del rendimiento y el uso de la memoria? ¿Hay alguna otra manera para la operación de sincronización de contactos?
Sería muy útil si alguien puede compartir ejemplos que pueden ayudarme en esto.