Daten mithilfe von Synchronisierungsadaptern übertragen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Hinweis: WorkManager wird als empfohlene Lösung für die meisten Anwendungsfälle der Hintergrundverarbeitung empfohlen. Im Leitfaden zur Hintergrundverarbeitung erfahren Sie, welche Lösung für Sie am besten geeignet ist.
Durch die Synchronisierung von Daten zwischen einem Android-Gerät und Webservern kann Ihre App für Ihre Nutzer deutlich nützlicher und überzeugender werden. So ist beispielsweise die Übertragung von Daten auf einen Webserver eine nützliche Sicherung, und die Datenübertragung von einem Server stellt sie dem Nutzer auch dann zur Verfügung, wenn das Gerät offline ist. Manchmal ist es für Nutzer einfacher, ihre Daten über eine Weboberfläche einzugeben und zu bearbeiten und dann auf ihrem Gerät zur Verfügung zu stellen. Oder sie möchten Daten über einen längeren Zeitraum erfassen und dann in einen zentralen Speicherbereich hochladen.
Sie können zwar Ihr eigenes System für die Datenübertragung in Ihrer App entwerfen, sollten jedoch das Synchronisierungsadapter-Framework von Android in Betracht ziehen. Dieses Framework unterstützt die Verwaltung und Automatisierung von Datenübertragungen und koordiniert Synchronisierungsvorgänge über verschiedene Anwendungen hinweg. Mit diesem Framework können Sie mehrere Features nutzen, die für von Ihnen entworfene Datenübertragungsschemas nicht verfügbar sind:
-
Plug-in-Architektur
-
Hiermit können Sie dem System Datenübertragungscode in Form von aufrufbaren Komponenten hinzufügen.
-
Automatisierte Ausführung
- Ermöglicht die Automatisierung der Datenübertragung anhand verschiedener Kriterien wie Datenänderungen, verstrichener Zeit oder Tageszeit. Darüber hinaus fügt das System Übertragungen hinzu, die nicht in eine Warteschlange ausgeführt werden können, und führt sie nach Möglichkeit aus.
-
Automatische Netzwerkprüfung
-
Das System führt die Datenübertragung nur aus, wenn das Gerät mit dem Netzwerk verbunden ist.
-
Verbesserte Akkuleistung
-
Ermöglicht es Ihnen, alle Datenübertragungsaufgaben Ihrer App an einem Ort zu zentralisieren, sodass sie alle gleichzeitig ausgeführt werden. Die Datenübertragung wird zusammen mit Datenübertragungen aus anderen Apps geplant. Diese Faktoren verringern die Häufigkeit, mit der das System das Netzwerk einschalten muss, wodurch der Akku geschont wird.
-
Kontoverwaltung und Authentifizierung
- Wenn für Ihre Anwendung Nutzeranmeldedaten oder eine Serveranmeldung erforderlich sind, können Sie optional die Kontoverwaltung und die Authentifizierung in die Datenübertragung einbinden.
In dieser Klasse wird gezeigt, wie Sie einen Synchronisierungsadapter und das gebundene Service
-Objekt erstellen, das ihn umschließt. Außerdem erfahren Sie, wie Sie die anderen Komponenten bereitstellen, mit denen Sie den Synchronisierungsadapter in das Framework einbinden können, und wie Sie den Synchronisierungsadapter für verschiedene Ausführungen ausführen.
Hinweis: Synchronisierungsadapter werden asynchron ausgeführt. Sie sollten daher bei ihrer Verwendung davon ausgehen, dass sie Daten regelmäßig und effizient, aber nicht sofort, übertragen. Wenn Sie eine Datenübertragung in Echtzeit ausführen müssen, sollten Sie dies in einem AsyncTask
- oder IntentService
-Objekt tun.
Unterricht
-
Stub-Authenticator erstellen
-
Hier erfahren Sie, wie Sie eine Komponente für die Kontobehandlung hinzufügen, die vom Synchronisierungsadapter-Framework als Teil Ihrer App erwartet wird. In dieser Lektion erfahren Sie, wie Sie der Einfachheit halber eine Stub-Authentifizierungskomponente erstellen.
-
Stub-Inhaltsanbieter erstellen
-
Hier erfahren Sie, wie Sie eine Contentanbieter-Komponente hinzufügen, die vom Synchronisierungsadapter-Framework als Teil Ihrer App erwartet wird. In dieser Lektion wird davon ausgegangen, dass Ihre App keinen Contentanbieter verwendet. Daher erfahren Sie, wie Sie eine Stub-Komponente hinzufügen. Wenn Sie bereits einen Contentanbieter in Ihrer App haben, können Sie diese Lektion überspringen.
-
Synchronisierungsadapter erstellen
-
Hier erfahren Sie, wie Sie Ihren Datenübertragungscode in eine Komponente kapseln, die vom Framework des Synchronisierungsadapters automatisch ausgeführt werden kann.
-
Synchronisierungsadapter ausführen
-
Informationen zum Auslösen und Planen von Datenübertragungen mit dem Sync Adapter-Framework.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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."]]