Transférer des données à l'aide d'adaptateurs de synchronisation
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Remarque:Nous vous recommandons d'utiliser WorkManager comme solution recommandée pour la plupart des cas d'utilisation du traitement en arrière-plan. Veuillez vous reporter au guide de traitement en arrière-plan pour connaître la solution qui vous convient le mieux.
La synchronisation des données entre un appareil Android et des serveurs Web peut rendre votre application beaucoup plus utile et attrayante pour vos utilisateurs. Par exemple, le transfert de données sur un serveur Web permet d'effectuer une sauvegarde utile, tandis que le transfert de données à partir d'un serveur les rend disponibles pour l'utilisateur même lorsque l'appareil est hors connexion. Dans certains cas, les utilisateurs peuvent trouver plus facile de saisir et de modifier leurs données dans une interface Web, puis de les avoir à disposition sur leur appareil. Ils peuvent également vouloir collecter des données au fil du temps, puis les importer dans un espace de stockage central.
Bien que vous puissiez concevoir votre propre système pour effectuer des transferts de données dans votre application, nous vous recommandons d'utiliser le framework d'adaptateur de synchronisation d'Android. Ce framework permet de gérer et d'automatiser les transferts de données, et de coordonner les opérations de synchronisation entre différentes applications. Lorsque vous utilisez ce framework, vous pouvez bénéficier de plusieurs fonctionnalités qui ne sont pas disponibles pour les schémas de transfert de données que vous concevez vous-même:
-
Architecture des plug-ins
-
Vous permet d'ajouter du code de transfert de données au système sous la forme de composants appelants.
-
Exécution automatisée
- Vous permet d'automatiser le transfert de données en fonction de divers critères, y compris les modifications de données, le temps écoulé ou l'heure de la journée. De plus, le système ajoute les transferts qui ne peuvent pas être exécutés dans une file d'attente, et les exécute lorsque cela est possible.
-
Vérification automatique du réseau
-
Le système n'exécute le transfert de données que lorsque l'appareil dispose d'une connexion réseau.
-
Amélioration des performances de la batterie
- Vous permet de centraliser toutes les tâches de transfert de données de votre application au même endroit afin qu'elles s'exécutent toutes en même temps. Le transfert de données est également planifié en même temps que les transferts de données à partir d'autres applications. Ces facteurs réduisent le nombre de fois où le système doit activer le réseau, ce qui réduit l'utilisation de la batterie.
-
Gestion et authentification des comptes
- Si votre application nécessite des identifiants utilisateur ou une connexion au serveur, vous pouvez éventuellement intégrer la gestion des comptes et l'authentification à votre transfert de données.
Cette classe vous explique comment créer un adaptateur de synchronisation et le Service
lié qui l'encapsule, comment fournir les autres composants qui vous aident à brancher l'adaptateur de synchronisation au framework et comment l'exécuter de différentes manières.
Remarque:Les adaptateurs de synchronisation s'exécutent de manière asynchrone. Vous devez donc les utiliser en partant du principe qu'ils transfèrent les données régulièrement et efficacement, mais pas instantanément. Si vous devez effectuer un transfert de données en temps réel, vous devez le faire dans un AsyncTask
ou un IntentService
.
Leçons
-
Créer un authentificateur de bouchon
-
Découvrez comment ajouter un composant de gestion de compte que le framework de l'adaptateur de synchronisation prévoit d'intégrer à votre application. Cette leçon vous explique comment créer un composant d'authentification bouchon pour plus de simplicité.
-
Créer un fournisseur de contenu bouchon
-
Découvrez comment ajouter un composant de fournisseur de contenu que le framework de l'adaptateur de synchronisation prévoit de faire partie de votre application. Cette leçon suppose que votre application n'utilise pas de fournisseur de contenu. Elle vous explique donc comment ajouter un composant bouchon. Si un fournisseur de contenu figure déjà dans votre application, vous pouvez ignorer cette leçon.
-
Créer un adaptateur de synchronisation
- Découvrez comment encapsuler votre code de transfert de données dans un composant que le framework de l'adaptateur de synchronisation peut exécuter automatiquement.
-
Exécuter un adaptateur de synchronisation
-
Découvrez comment déclencher et planifier des transferts de données à l'aide du framework d'adaptateur de synchronisation.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Transfer data using sync adapters\n\n**Note:** We recommended [WorkManager](/topic/libraries/architecture/workmanager)\nas the recommended solution for most background processing use cases. Please reference the\n[background processing guide](/guide/background) to learn which solution works best for you.\n\n\nSynchronizing data between an Android device and web servers can make your application\nsignificantly more useful and compelling for your users. For example, transferring data to a web\nserver makes a useful backup, and transferring data from a server makes it available to the user\neven when the device is offline. In some cases, users may find it easier to enter and edit their\ndata in a web interface and then have that data available on their device, or they may want to\ncollect data over time and then upload it to a central storage area.\n\n\nAlthough you can design your own system for doing data transfers in your app, you should\nconsider using Android's sync adapter framework. This framework helps manage and automate data\ntransfers, and coordinates synchronization operations across different apps. When you use\nthis framework, you can take advantage of several features that aren't available to data\ntransfer schemes you design yourself:\n\n\nPlug-in architecture\n:\n Allows you to add data transfer code to the system in the form of callable components.\n\n\nAutomated execution\n:\n Allows you to automate data transfer based on a variety of criteria, including data changes,\n elapsed time, or time of day. In addition, the system adds transfers that are unable to\n run to a queue, and runs them when possible.\n\n\nAutomated network checking\n:\n The system only runs your data transfer when the device has network connectivity.\n\n\nImproved battery performance\n:\n Allows you to centralize all of your app's data transfer tasks in one place, so that they\n all run at the same time. Your data transfer is also scheduled in conjunction with data\n transfers from other apps. These factors reduce the number of times the system has to\n switch on the network, which reduces battery usage.\n\n\nAccount management and authentication\n:\n If your app requires user credentials or server login, you can optionally\n integrate account management and authentication into your data transfer.\n\n\nThis class shows you how to create a sync adapter and the bound [Service](/reference/android/app/Service) that\nwraps it, how to provide the other components that help you plug the sync adapter into the\nframework, and how to run the sync adapter to run in various ways.\n\n\n**Note:** Sync adapters run asynchronously, so you should use them with the\nexpectation that they transfer data regularly and efficiently, but not instantaneously. If\nyou need to do real-time data transfer, you should do it in an [AsyncTask](/reference/android/os/AsyncTask) or\nan [IntentService](/reference/android/app/IntentService).\n\nLessons\n-------\n\n\n**[Create a stub authenticator](/training/sync-adapters/creating-authenticator)**\n:\n Learn how to add an account-handling component that the sync adapter framework expects to be\n part of your app. This lesson shows you how to create a stub authentication component for\n simplicity.\n\n\n**[Create a stub content provider](/training/sync-adapters/creating-stub-provider)**\n:\n Learn how to add a content provider component that the sync adapter framework expects to be\n part of your app. This lesson assumes that your app doesn't use a content provider, so it\n shows you how to add a stub component. If you have a content provider already in your app,\n you can skip this lesson.\n\n\n**[Create a sync adapter](/training/sync-adapters/creating-sync-adapter)**\n:\n Learn how to encapsulate your data transfer code in a component that the sync\n adapter framework can run automatically.\n\n\n**[Run a sync adapter](/training/sync-adapters/running-sync-adapter)**\n:\n Learn how to trigger and schedule data transfers using the sync adapter framework."]]