Home | History | Annotate | Download | only in load-data-background
      1 page.title=Setting Up the Loader
      2 trainingnavtop=true
      3 startpage=true
      4 
      5 @jd:body
      6 
      7 <!-- This is the training bar -->
      8 <div id="tb-wrapper">
      9   <div id="tb">
     10 <h2>This lesson teaches you to</h2>
     11 <ol>
     12     <li>
     13         <a href="#AddExtensions">Extend an Activity</a>
     14     </li>
     15     <li>
     16         <a href="#GetLoader">Retrieve a LoaderManager</a>
     17     </li>
     18     <li>
     19         <a href="#InitializeLoader">Initialize the Loader Framework</a>
     20     </li>
     21 </ol>
     22   </div>
     23 </div>
     24 <p>
     25     You create a {@link android.support.v4.content.CursorLoader} within a
     26     <b>loader framework</b>. To set up the framework, you implement the
     27     {@link android.support.v4.app.LoaderManager.LoaderCallbacks LoaderCallbacks&lt;Cursor&gt;}
     28     as part of an {@link android.app.Activity}. In addition, to provide compatibility
     29     compatible with platform versions starting with Android 1.6, you must extend the
     30     {@link android.app.Activity} with the {@link android.support.v4.app.FragmentActivity} class.
     31 </p>
     32 <p class="note">
     33     <strong>Note:</strong> A {@link android.support.v4.app.Fragment} is not a prerequisite for
     34     {@link android.support.v4.content.CursorLoader}. As a convenience, the support library class
     35     {@link android.support.v4.app.FragmentActivity} contains the fragment and the loader frameworks,
     36     but they are completely independent of each other.
     37 </p>
     38 <p>
     39     Before you can use the loader framework, you need to initialize it. To do this, retrieve
     40     a {@link android.support.v4.app.LoaderManager} object and call its
     41     {@link android.support.v4.app.LoaderManager#initLoader initLoader()} method.
     42 </p>
     43 <p>
     44     If you do use one or more {@link android.support.v4.app.Fragment} objects in an
     45     {@link android.app.Activity}, the {@link android.support.v4.app.LoaderManager} you retrieve is
     46     available to all of them.
     47 </p>
     48 <h2 id="AddExtensions">Extend an Activity</h2>
     49 <p>
     50     To set up an {@link android.app.Activity} subclass to contain a
     51     {@link android.support.v4.content.CursorLoader}, extend the subclass with
     52     must extend {@link android.support.v4.app.FragmentActivity}, which provides the loader
     53     framework, and implement the {@link android.support.v4.app.LoaderManager.LoaderCallbacks
     54     LoaderCallbacks&lt;Cursor&gt;} interface, which specifies method signatures that the loader
     55     framework uses to interact with the {@link android.app.Activity}.
     56 </p>
     57 <p>
     58     For example:
     59 </p>
     60 <pre>
     61 public class DisplayActivity extends FragmentActivity
     62         implements LoaderManager.LoaderCallbacks&lt;Cursor&gt;
     63 </pre>
     64 <h2 id="GetLoader">Retrieve a LoaderManager</h2>
     65 <p>
     66     To get an instance {@link android.support.v4.app.LoaderManager} for use in your
     67     {@link android.app.Activity}, call
     68     {@link android.support.v4.app.FragmentActivity#getSupportLoaderManager
     69     FragmentActivity.getSupportLoaderManager()} at the beginning of the
     70     {@link android.app.Activity#onCreate onCreate()} method. For example:
     71 </p>
     72 <pre>
     73 private LoaderManager mLoaderManager;
     74 public void onCreate() {
     75 ...
     76 mLoaderManager = this.getSupportLoaderManager();
     77 </pre>
     78 <h2 id="InitializeLoader">Initialize the Loader Framework</h2>
     79 <p>
     80     Once you have the {@link android.support.v4.app.LoaderManager} object, initialize
     81     it by calling {@link android.support.v4.app.LoaderManager#initLoader initLoader()}. For
     82     example:
     83 </p>
     84 <pre>
     85 // CursorLoader instance identifier
     86 public static final int URL_LOADER = 0;
     87 ...
     88 // Initializes the CursorLoader
     89 getSupportLoaderManager().initLoader(URL_LOADER, null, this);
     90 </pre>
     91