Nota: Recomendamos usar WorkManager como la solución más apropiada para la mayoría de los casos prácticos de procesamiento en segundo plano. Consulta la guía de procesamiento en segundo plano para conocer la solución que funciona mejor en tu caso.
La sincronización de datos entre un dispositivo Android y servidores web puede hacer que tu aplicación sea mucho más útil y atractiva para tus usuarios. Por ejemplo, la transferencia de datos a un servidor web representa una copia de seguridad útil, y la transferencia de datos desde un servidor la pone a disposición del usuario, incluso cuando el dispositivo no tiene conexión. En algunos casos, a los usuarios les puede resultar más fácil ingresar y editar sus datos en una interfaz web y, luego, tener esos datos disponibles en sus dispositivos, o tal vez quieran recopilar datos con el paso del tiempo y, luego, subirlos a un área de almacenamiento central.
Si bien puedes diseñar tu propio sistema para realizar transferencias de datos en tu app, debes considerar usar el framework del adaptador de sincronización de Android. Este framework ayuda a administrar y automatizar las transferencias de datos, y coordina las operaciones de sincronización en diferentes apps. Cuando usas este framework, puedes aprovechar varias funciones que no están disponibles para los esquemas de transferencia de datos que diseñas tú mismo:
- Arquitectura de complementos
- Te permite agregar código de transferencia de datos al sistema en forma de componentes que admiten llamadas.
- Ejecución automática
- Te permite automatizar la transferencia de datos según varios criterios, como cambios en los datos, el tiempo transcurrido o la hora del día. Además, el sistema agrega transferencias que no se pueden ejecutar en una cola y las ejecuta cuando es posible.
- Verificación automática de red
- El sistema solo ejecuta tu transferencia de datos cuando el dispositivo tiene conectividad de red.
- Mejora del rendimiento de la batería
- Te permite centralizar todas las tareas de transferencia de datos de tu app en un solo lugar, de modo que todas se ejecuten al mismo tiempo. La transferencia de datos también se programa junto con las transferencias de datos de otras apps. Estos factores reducen la cantidad de veces que el sistema tiene que encender la red, lo que reduce el uso de batería.
- Administración de cuentas y autenticación
- Si tu app requiere credenciales de usuario o acceso al servidor, puedes integrar la administración de cuentas y la autenticación en tu transferencia de datos.
En esta clase, se muestra cómo crear un adaptador de sincronización y el Service
vinculado que lo une, cómo proporcionar los otros componentes que te ayudan a conectar el adaptador de sincronización al framework y cómo ejecutar el adaptador de sincronización para que se ejecute de varias maneras.
Nota: Los adaptadores de sincronización se ejecutan de forma asíncrona, por lo que debes usarlos con la expectativa de que transfieran datos de manera regular y eficiente, pero no instantánea. Si necesitas realizar una transferencia de datos en tiempo real, debes hacerlo en un AsyncTask
o un IntentService
.
Lecciones
- Cómo crear un autenticador de stub
- Obtén información sobre cómo agregar un componente de administración de cuentas que el framework del adaptador de sincronización espera que sea parte de tu app. En esta lección, se muestra cómo crear un componente de autenticación de stub para mayor simplicidad.
- Cómo crear un proveedor de contenido de stub
- Obtén información sobre cómo agregar un componente de proveedor de contenido que el framework del adaptador de sincronización espera que sea parte de tu app. En esta lección, se asume que tu app no usa un proveedor de contenido, por lo que se muestra cómo agregar un componente de stub. Si ya tienes un proveedor de contenido en tu app, puedes omitir esta lección.
- Cómo crear un adaptador de sincronización
- Obtén información sobre cómo encapsular tu código de transferencia de datos en un componente que el framework del adaptador de sincronización pueda ejecutar automáticamente.
- Cómo ejecutar un adaptador de sincronización
- Obtén información sobre cómo activar y programar transferencias de datos con el framework del adaptador de sincronización.