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 funcionará mejor en tu caso.
La sincronización de datos entre un dispositivo Android y servidores web puede hacer que tu app sea bastante más útil y atractiva para los 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, para los usuarios es más fácil ingresar y editar sus datos en una interfaz web y, luego, tener esos datos disponibles en sus dispositivos. También pueden 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 marco de trabajo del adaptador de sincronización de Android, que ayuda a administrar y automatizar las transferencias de datos, y coordina las operaciones de sincronización en diferentes apps. Si usas ese marco de trabajo, podrás aprovechar varias funciones que no están disponibles para los esquemas de transferencia de datos que tú mismo diseñas:
- Arquitectura de complementos
- Permite agregar códigos de transferencia de datos al sistema en forma de componentes que admiten llamadas.
- Ejecución automática
- Permite automatizar la transferencia de datos según diferentes criterios, incluidos 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 conexión 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 se ejecuten todas al mismo tiempo. La transferencia de datos también se programa junto con las transferencias de datos de otras apps. Estos factores disminuyen la frecuencia con que el sistema debe 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 objeto vinculado Service
que lo une, cómo proporcionar los otros componentes que te permiten conectar el adaptador de sincronización en el framework y cómo configurar 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 marco de trabajo del adaptador de sincronización espera que forme parte de tu app. En esta lección, se muestra cómo crear un componente de autenticación de stub para mayor simpleza.
- 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 ser parte de tu app. En esta lección, se supone que tu app no usa un proveedor de contenido, por lo que te 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.