33baa5ad7d
Change-Id: I9e12079568ef7be8574743a34856ed2839e1e76a
81 lines
2.8 KiB
Plaintext
81 lines
2.8 KiB
Plaintext
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 <a
|
|
href="{@docRoot}tools/support-library/features.html#v4">v4 Support Library</a>
|
|
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>
|