Przenoszenie danych za pomocą adapterów synchronizacji
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Uwaga: zalecamy WorkManager jako zalecane rozwiązanie w większości przypadków użycia związanych z przetwarzaniem w tle. Zapoznaj się z przewodnikiem dotyczącym przetwarzania w tle, aby sprawdzić, które rozwiązanie jest dla Ciebie najlepsze.
Synchronizacja danych między urządzeniem z Androidem a serwerami WWW może znacznie zwiększyć przydatność i atrakcyjność aplikacji dla użytkowników. Na przykład przeniesienie danych na serwer WWW stanowi przydatną kopię zapasową, a przeniesienie danych z serwera sprawia, że są one dostępne dla użytkownika nawet wtedy, gdy urządzenie jest offline. W niektórych przypadkach użytkownicy mogą łatwiej wpisywać i edytować swoje dane w interfejsie internetowym, a później udostępniać je na swoich urządzeniach. Mogą też zbierać dane i przesyłać je do centralnego obszaru pamięci masowej.
Możesz zaprojektować własny system do przenoszenia danych w swojej aplikacji, ale rozważ użycie platformy adaptera synchronizacji w Androidzie. Ta platforma pomaga zarządzać transferem danych i automatyzować go, a także koordynować operacje synchronizacji w różnych aplikacjach. Używając tej platformy, możesz korzystać z kilku funkcji niedostępnych w przypadku samodzielnie projektowanych schematów przesyłania danych:
-
Architektura wtyczek
- Pozwala dodać do systemu kod transferu danych w postaci komponentów z możliwością wywołania.
-
Automatyczne wykonywanie
- Umożliwia automatyzację przenoszenia danych na podstawie różnych kryteriów, takich jak zmiany danych, upłynięcie czasu lub pora dnia. Dodatkowo system dodaje do kolejki transfery, których nie można uruchomić, i uruchamia je, gdy jest to możliwe.
-
Automatyczne sprawdzanie sieci
-
System uruchamia przesyłanie danych tylko wtedy, gdy urządzenie jest połączone z siecią.
-
Poprawiona wydajność baterii
- Umożliwia scentralizowanie wszystkich zadań transferu danych z aplikacji w jednym miejscu, dzięki czemu będą one uruchamiane w tym samym czasie. Zaplanowano też przesyłanie danych z innych aplikacji. Współczynniki te zmniejszają liczbę razy, gdy system musi
włączać sieć, co zmniejsza wykorzystanie baterii.
-
Zarządzanie kontem i uwierzytelnianie
- Jeśli Twoja aplikacja wymaga danych logowania użytkownika lub logowania na serwerze, możesz opcjonalnie zintegrować zarządzanie kontem i uwierzytelnianie z przenoszeniem danych.
Ta klasa pokazuje, jak utworzyć adapter synchronizacji i powiązany z nim element Service
, który go opakowuje, jak dostarczyć inne komponenty ułatwiające podłączanie adaptera synchronizacji do platformy i jak uruchamiać adapter synchronizacji na różne sposoby.
Uwaga: adaptery synchronizacji działają asynchronicznie, więc należy ich używać z założeniem, że będą przesyłać dane regularnie i wydajnie, ale nie natychmiast. Jeśli musisz przenosić dane w czasie rzeczywistym, musisz to zrobić w AsyncTask
lub IntentService
.
Lekcje
-
Tworzenie kodu uwierzytelniającego
-
Dowiedz się, jak dodać komponent do obsługi konta, który platforma adaptera synchronizacji powinna być częścią Twojej aplikacji. Z tej lekcji dowiesz się, jak dla uproszczenia utworzyć komponent uwierzytelniania skróconego.
-
Tworzenie dostawcy wycinka kodu
-
Dowiedz się, jak dodać komponent dostawcy treści, który platforma adaptera synchronizacji powinna być częścią Twojej aplikacji. W tej lekcji zakładamy, że aplikacja nie korzysta z dostawcy treści, więc pokazujemy, jak dodać komponent wycinka kodu. Jeśli w swojej aplikacji masz już dostawcę treści, możesz pominąć tę lekcję.
-
Tworzenie adaptera synchronizacji
- Dowiedz się, jak umieścić kod transferu danych w komponencie, który platforma adaptera synchronizacji może uruchamiać automatycznie.
-
Korzystanie z adaptera synchronizacji
-
Dowiedz się, jak uruchamiać i planować przesyłanie danych za pomocą platformy adaptera synchronizacji.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]