| page.title=Loading Data in the Background |
| page.tags="cursorloader" |
| |
| trainingnavtop=true |
| startpage=true |
| |
| @jd:body |
| <div id="tb-wrapper"> |
| <div id="tb"> |
| |
| <!-- Required platform, tools, add-ons, devices, knowledge, etc. --> |
| <h2>Dependencies and prerequisites</h2> |
| <ul> |
| <li> |
| Android 1.6 or later |
| </li> |
| </ul> |
| |
| <!-- related docs (NOT javadocs) --> |
| <h2>You should also read</h2> |
| <ul> |
| <li> |
| <a href="{@docRoot}guide/components/loaders.html">Loaders</a> |
| </li> |
| <li> |
| <a href="{@docRoot}guide/topics/data/data-storage.html#db">Using Databases</a> |
| </li> |
| <li> |
| <a href="{@docRoot}guide/topics/providers/content-provider-basics.html">Content Provider Basics</a> |
| </li> |
| </ul> |
| |
| <h2>Try it out</h2> |
| <div class="download-box"> |
| <a href="{@docRoot}shareables/training/ThreadSample.zip" class="button">Download the sample</a> |
| <p class="filename">ThreadSample.zip</p> |
| </div> |
| |
| </div> |
| </div> |
| <p> |
| Querying a {@link android.content.ContentProvider} for data you want to display takes time. |
| If you run the query directly from an {@link android.app.Activity}, it may get blocked and |
| cause the system to issue an "Application Not Responding" message. Even if it doesn't, users |
| will see an annoying delay in the UI. To avoid these problems, you should initiate a query on a |
| separate thread, wait for it to finish, and then display the results. |
| </p> |
| <p> |
| You can do this in a straightforward way by using an object that runs a query asynchronously in |
| the background and reconnects to your {@link android.app.Activity} when it's finished. This |
| object is a {@link android.support.v4.content.CursorLoader}. Besides doing the initial |
| background query, a {@link android.support.v4.content.CursorLoader} automatically re-runs the |
| query when data associated with the query changes. |
| </p> |
| <p> |
| This class describes how to use a {@link android.support.v4.content.CursorLoader} to run a |
| background query. Examples in this class use the {@link android.support.v4 v4 support library} |
| versions of classes, which support platforms starting with Android 1.6. |
| </p> |
| <h2>Lessons</h2> |
| <dl> |
| <dt> |
| <strong><a href="setup-loader.html">Running a Query with a CursorLoader</a></strong> |
| </dt> |
| <dd> |
| Learn how to run a query in the background, using a |
| {@link android.support.v4.content.CursorLoader}. |
| </dd> |
| <dt> |
| <strong> |
| <a href="handle-results.html">Handling the Results</a> |
| </strong> |
| </dt> |
| <dd> |
| Learn how to handle the {@link android.database.Cursor} returned from the query, and how |
| to remove references to the current {@link android.database.Cursor} when the loader |
| framework re-sets the {@link android.support.v4.content.CursorLoader}. |
| </dd> |
| </dl> |