Mentransfer data menggunakan adaptor sinkronisasi
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Catatan: Kami merekomendasikan WorkManager sebagai solusi untuk sebagian besar kasus penggunaan pemrosesan di latar belakang. Harap baca panduan pemrosesan di latar belakang untuk mengetahui solusi terbaik bagi Anda.
Menyinkronkan data antara perangkat Android dan server web dapat membuat aplikasi Anda
jauh lebih bermanfaat dan menarik bagi pengguna. Misalnya, transfer data ke server web akan membuat cadangan yang berguna, dan transfer data dari server akan membuatnya tersedia bagi pengguna meskipun perangkat sedang offline. Dalam beberapa kasus, pengguna mungkin merasa lebih mudah memasukkan dan mengedit
data mereka di antarmuka web, lalu data tersebut tersedia di perangkat mereka. Atau, pengguna mungkin ingin
mengumpulkan data dari waktu ke waktu lalu menguploadnya ke area penyimpanan pusat.
Meskipun Anda dapat mendesain sistem sendiri untuk melakukan transfer data dalam aplikasi, sebaiknya pertimbangkan untuk menggunakan framework adaptor sinkronisasi Android. Framework ini membantu mengelola dan mengotomatiskan transfer
data, serta mengoordinasikan operasi sinkronisasi di berbagai aplikasi. Saat menggunakan
framework ini, Anda dapat memanfaatkan beberapa fitur yang tidak tersedia untuk skema
transfer data yang Anda desain sendiri:
-
Arsitektur plugin
-
Memungkinkan Anda menambahkan kode transfer data ke sistem dalam bentuk komponen callable.
-
Eksekusi otomatis
-
Memungkinkan Anda mengotomatiskan transfer data berdasarkan berbagai kriteria, termasuk perubahan data,
waktu berlalu, atau waktu dalam sehari. Selain itu, sistem akan menambahkan transfer yang tidak dapat dijalankan ke antrean, dan akan menjalankannya jika memungkinkan.
-
Pemeriksaan jaringan otomatis
-
Sistem hanya menjalankan transfer data Anda saat perangkat memiliki konektivitas jaringan.
-
Peningkatan performa baterai
-
Memungkinkan Anda memusatkan semua tugas transfer data aplikasi di satu tempat agar semuanya
berjalan di waktu yang sama. Transfer data Anda juga dijadwalkan bersamaan dengan transfer
data dari aplikasi lain. Faktor ini mengurangi frekuensi sistem harus
mengaktifkan jaringan, sehingga akan mengurangi penggunaan baterai.
-
Autentikasi dan pengelolaan akun
-
Jika aplikasi memerlukan kredensial pengguna atau login server, Anda dapat mengintegrasikan autentikasi dan pengelolaan akun ke dalam transfer data secara opsional.
Class ini menunjukkan cara membuat adaptor sinkronisasi dan Service
terikat yang menggabungkannya, cara menyediakan komponen lain yang membantu Anda menyambungkan adaptor sinkronisasi ke dalam framework, serta cara menjalankan adaptor sinkronisasi agar berjalan dalam berbagai cara.
Catatan: Adaptor sinkronisasi berjalan secara asinkron, sehingga Anda harus menggunakannya dengan ekspektasi bahwa adaptor akan mentransfer data secara rutin dan efisien, tetapi tidak secara instan. Jika perlu melakukan transfer data real-time, Anda harus melakukannya di AsyncTask
atau IntentService
.
Tutorial
-
Membuat pengautentikasi stub
-
Pelajari cara menambahkan komponen penanganan akun yang diharapkan oleh framework adaptor sinkronisasi untuk menjadi
bagian dari aplikasi Anda. Tutorial ini menunjukkan cara membuat komponen autentikasi stub agar
lebih mudah.
-
Membuat penyedia konten stub
-
Pelajari cara menambahkan komponen penyedia konten yang diharapkan oleh framework adaptor sinkronisasi untuk menjadi
bagian dari aplikasi Anda. Tutorial ini mengasumsikan bahwa aplikasi Anda tidak menggunakan penyedia konten, sehingga
tutorial ini menunjukkan cara menambahkan komponen stub. Jika sudah memiliki penyedia konten di aplikasi, Anda dapat melewati tutorial ini.
-
Membuat adaptor sinkronisasi
-
Pelajari cara merangkum kode transfer data dalam komponen yang dapat dijalankan oleh framework adaptor sinkronisasi secara otomatis.
-
Menjalankan adaptor sinkronisasi
-
Pelajari cara memicu dan menjadwalkan transfer data menggunakan framework adaptor sinkronisasi.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[null,null,["Terakhir diperbarui pada 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."]]