Tu enfoque es correcto.
Si desea crear sus propias bases de datos sincronizadas personalizadas desde cero, entonces debe seguir la metodología que ha descrito en la sección de descripción.
Personalmente no he usado el SyncAdapter en ninguno de los proyectos hasta ahora. Pero según la documentación oficial de Android (que es realmente mala), lo que entiendo es que debe crear la cuenta en Android con AutoSync habilitado, que es cómo se implementan básicamente los adaptadores Sync. Por lo tanto, cuando los datos cambian en la base de datos local, activa automáticamente el servicio para llevar a cabo la sincronización. De la misma manera, su aplicación debe seguir sondeando el back-end para verificar si hay actualizaciones (la frecuencia depende de la frecuencia con la que sus bases de datos pueden modificarse para una cuenta de usuario) o responder a una notificación push del servicio de sincronización de activación posterior para actualizar el local base de datos. Hay suficientes muestras de trabajo en SyncAdapter en GitHub. Te sugiero que veas algunos de ellos.
- Cómo declarar fondo en Java Android studio
- ¿Cuál es la mejor herramienta de colaboración para tabletas Android?
- ¿Cómo planea Google abordar el problema de fragmentación de Android en el futuro? ¿Cuál es la hoja de ruta y qué pueden esperar los desarrolladores?
- ¿Es difícil desarrollar una aplicación de Android?
- ¿Es obligatorio usar JSON para hacer una aplicación de Android de cricket en vivo?
Debido a la complejidad involucrada en la implementación de esto, algunas personas prefieren usar implementaciones de BaaS (Back End As Service) de terceros. Parse solía ser el popular. Pero anunciaron que están cerrando su servicio. Pero ese no es el final. Lo han hecho de código abierto y puede configurar su propio servidor Parse. Pero también implicaría cierta cantidad de desarrollo de back-end en el servidor Parse. Luego hay otras alternativas como Firebase, AWS Mobile Hub (DynamoDB, Lambda, API Gateway, Cognito).
Preferiría estos BaaS ya que son más infalibles. Entiendo que como geek nos enorgullecemos de implementar algo desde cero. Pero también me suscribo a la filosofía de no reinventar la rueda. Si ya existe algo que es bueno, útil y proporciona más de lo que pedimos, no hay nada malo en explotarlo para nuestra mayor ventaja.
Espero que esto ayude.
PD: Esta respuesta no es un respaldo pagado de las plataformas BaaS que he mencionado en la respuesta. Son solo mi opinión.