Skip to content
Pantalla de la App: último registro insertado

Ejemplo de uso de Sync Adapter en un proyecto Android

Sync Adapter: sincronización de datos
1. Sincronización de datos: Sync Adapter
2. Ejemplo de uso de Sync Adapter en un proyecto Android
3. Video: Proyecto sincronización externa de datos en Android con Sync Adapter

Vamos a ver la implementación de Sync Adapter en una App ejemplo,  que nos va a permitir sincronizar datos entre nuestro dispositivo Android y un servidor externo.

A través del desarrollo de este proyecto, explicaremos cómo establecer la sincronización con un gestor de datos de manera automática, en intervalos de tiempos definidos, además de mostrar su funcionamiento de manera manual con la implementación de dos botones para la apertura y cierre de la conexión.

Para ello, utilizaremos un modelo de datos que simula los vehículos disponibles en un concesionario, formados por los campos «_id«, «modelo» y «marca«. Para comprender el funcionamiento de este ejemplo, sólo se mostrará el último registro introducido para visualizar los cambios que se produzcan en la base de datos.

Estructura base de datos: tablas y campos

Elementos definidos a nivel de código:

  • Clase MainActivity extends Activity para mostrar la información de sincronización con el servidor remoto.
  • Clase MiSyncService extends Service para ejecución de tareas en segundo plano.
  • Clase MiSyncAdapter extends AbstractThreadedSyncAdapter para la sincronización de las operaciones.
  • Clase TareaAsincrona extends AsyncTask<Void, Integer, String> para establecer y definir los parámetros de conexión con el servidor remoto Postgres.
  • Librería «postgresql-9.3-1101.jdbc3.jar» para conectarnos al servidor Postgres.

Elementos definidos a nivel de Layout (más significativos):

  • Dos componentes de tipo Button (<Button android:id=»@+id/btnArrancar»… y <Button android:id=»@+id/btnParar»)para abrir y cerrar la conexión con el servidor.
  • Componente TextView (<TextView android:id=»@+id/txtDatos») para mostrar el último registro almacenado.
  • Componente CheckBox (<CheckBox android:id=»@+id/checkSync») para establecer la sincronización con el servidor de manera automática.

Permisos definidos en AndroidManifest.xml

Estos son los permisos que necesita la aplicación para funcionar. Necesitaremos el de acceso a Internet porque obviamente es el nuestro medio de comunicación, los de configuraciones de sincronización porque forman parte del servicio que vamos a utilizar y el de autentificación para que se pueda usar en el acceso a la configuración.

 

Pantalla que muestra la sincronización automática habilitada:

Pantalla de la App: sincronización habilitada

Pantalla que muestra los botones definidos para mostrar el último registro insertado de manera manual:

Pantalla de la App: último registro insertado

Código del Proyecto

Vamos a mostrar en detalle las distintas clases y layouts que vamos a utilizar en este proyecto. Como siempre, podrás descargar todo el código al final de este tutorial.

AutenticacionSyncAdapter/com.academiaandroid.autenticacion/src/MainActivity.java

 

AutenticacionSyncAdapter/com.academiaandroid.autenticacion/src/MiSyncService.java

 

AutenticacionSyncAdapter/com.academiaandroid.autenticacion/src/TareaAsincrona.java

 

AutenticacionSyncAdapter/com.academiaandroid.autenticacion/res/layout/activity_main.xml

Muestra del Layout

 

AutenticacionSyncAdapter/com.academiaandroid.autenticacion/res/xml/syncadapter.xml

Descarga del código del Proyecto

Download

En la siguiente publicación de esta serie explicaremos este mismo proyecto y el funcionamiento de la App en un video.

 

Esta entrada tiene 6 comentarios

  1. Estimados, este proyecto me parece que esta desarrollado para Eclipse. Si es asi, estará la versión para Android Studio 1.5.1.
    Gracias

  2. Hola Marcelo,

    aunque ya todos los proyectos ejemplo se desarrollan en Android Studio, puede haber anteriores que estén en Eclipse.
    Iremos haciendo nuevas versiones, pero no es algo que pueda realizar de forma inmediata (también el cambio de versiones de Android puede afectar en algunos casos, al descontinuar alguna clase o introducir nuevos elementos, y ya hemos actualizado en ese sentido algunos proyectos).

    Anotamos éste en concreto y te diremos algo.
    Saludos

    1. Hola Alejandro,

      como te comentamos en el otro post, y en un email, a nosotros no nos da error. No obstante te lo intentamos enviar a tu email.
      Saludos

    1. Hola Carlos, tras hacer login con tu usuario y visitar la página del video ¿has probado a recargarla en tu navegador con F5 (o la opción correspondiente según el navegador que utilices)?
      Es algo que indicamos en la página donde haces login: «Si al intentar visualizar un contenido premium te sigue apareciendo restringido, recarga la página en tu navegador con F5 o la opción correspondiente.»
      Si te sigue fallando, por favor contacta mejor a través de nuestro correo de soporte: informacion[arroba]academiaandroid.com porque así podremos atenderte mejor.
      Gracias

Los comentarios están cerrados.

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies.    Más información
Privacidad