summaryrefslogtreecommitdiffstats
path: root/docs/html/training/sync-adapters/index.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html/training/sync-adapters/index.jd')
-rw-r--r--docs/html/training/sync-adapters/index.jd135
1 files changed, 135 insertions, 0 deletions
diff --git a/docs/html/training/sync-adapters/index.jd b/docs/html/training/sync-adapters/index.jd
new file mode 100644
index 0000000..b107cbe
--- /dev/null
+++ b/docs/html/training/sync-adapters/index.jd
@@ -0,0 +1,135 @@
+page.title=Transferring Data Using Sync Adapters
+
+trainingnavtop=true
+startpage=true
+
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>Dependencies and prerequisites</h2>
+<ul>
+ <li>Android 2.1 (API Level 7) or higher</li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+ <li>
+ <a href="{@docRoot}guide/components/bound-services.html">Bound Services</a>
+ </li>
+ <li>
+ <a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a>
+ </li>
+ <li>
+ <a href="{@docRoot}training/id-auth/custom_auth.html">Creating a Custom Account Type</a>
+ </li>
+</ul>
+
+<h2>Try it out</h2>
+
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/BasicSyncAdapter.zip" class="button">Download the sample</a>
+ <p class="filename">BasicSyncAdapter.zip</p>
+</div>
+
+</div>
+</div>
+<p>
+ Synchronizing data between an Android device and web servers can make your application
+ significantly more useful and compelling for your users. For example, transferring data to a web
+ server makes a useful backup, and transferring data from a server makes it available to the user
+ even when the device is offline. In some cases, users may find it easier to enter and edit their
+ data in a web interface and then have that data available on their device, or they may want to
+ collect data over time and then upload it to a central storage area.
+</p>
+<p>
+ Although you can design your own system for doing data transfers in your app, you should
+ consider using Android's sync adapter framework. This framework helps manage and automate data
+ transfers, and coordinates synchronization operations across different apps. When you use
+ this framework, you can take advantage of several features that aren't available to data
+ transfer schemes you design yourself:
+</p>
+<dl>
+ <dt>
+ Plug-in architecture
+ </dt>
+ <dd>
+ Allows you to add data transfer code to the system in the form of callable components.
+ </dd>
+ <dt>
+ Automated execution
+ </dt>
+ <dd>
+ Allows you to automate data transfer based on a variety of criteria, including data changes,
+ elapsed time, or time of day. In addition, the system adds transfers that are unable to
+ run to a queue, and runs them when possible.
+ </dd>
+ <dt>
+ Automated network checking
+ </dt>
+ <dd>
+ The system only runs your data transfer when the device has network connectivity.
+ </dd>
+ <dt>
+ Improved battery performance
+ </dt>
+ <dd>
+ Allows you to centralize all of your app's data transfer tasks in one place, so that they
+ all run at the same time. Your data transfer is also scheduled in conjunction with data
+ transfers from other apps. These factors reduce the number of times the system has to
+ switch on the network, which reduces battery usage.
+ </dd>
+ <dt>
+ Account management and authentication
+ </dt>
+ <dd>
+ If your app requires user credentials or server login, you can optionally
+ integrate account management and authentication into your data transfer.
+ </dd>
+</dl>
+<p>
+ This class shows you how to create a sync adapter and the bound {@link android.app.Service} that
+ wraps it, how to provide the other components that help you plug the sync adapter into the
+ framework, and how to run the sync adapter to run in various ways.
+</p>
+<p class="note">
+ <strong>Note:</strong> Sync adapters run asynchronously, so you should use them with the
+ expectation that they transfer data regularly and efficiently, but not instantaneously. If
+ you need to do real-time data transfer, you should do it in an {@link android.os.AsyncTask} or
+ an {@link android.app.IntentService}.
+</p>
+<h2>Lessons</h2>
+<dl>
+ <dt>
+ <b><a href="creating-authenticator.html">Creating a Stub Authenticator</a></b>
+ </dt>
+ <dd>
+ Learn how to add an account-handling component that the sync adapter framework expects to be
+ part of your app. This lesson shows you how to create a stub authentication component for
+ simplicity.
+ </dd>
+ <dt>
+ <b><a href="creating-stub-provider.html">Creating a Stub Content Provider</a></b>
+ </dt>
+ <dd>
+ Learn how to add a content provider component that the sync adapter framework expects to be
+ part of your app. This lesson assumes that your app doesn't use a content provider, so it
+ shows you how to add a stub component. If you have a content provider already in your app,
+ you can skip this lesson.
+ </dd>
+ <dt>
+ <b><a href="creating-sync-adapter.html">Creating a Sync Adapter</a></b>
+ </dt>
+ <dd>
+ Learn how to encapsulate your data transfer code in a component that the sync
+ adapter framework can run automatically.
+ </dd>
+ <dt>
+ <b><a href="running-sync-adapter.html">Running a Sync Adapter</a></b>
+ </dt>
+ <dd>
+ Learn how to trigger and schedule data transfers using the sync adapter framework.
+ </dd>
+</dl>