Any potentially long-running operations should not be done on the UI thread, as this can cause your application to be slow or become non-responsive. The Android OS will bring up the Application Not Responding (ANR) dialog when apps become non-responsive.
Since querying databases can be time-consuming, Android introduced the Loader API in Android 3.0. A Loader processes the query on a background thread and notifies the UI thread when it finishes.
The two primary benefits to Loaders include:
Querying the database is (automatically) handled on a background thread
The Query auto-updates (when using a Content Provider data source)
To demonstrate a Loader, we will modify the previous SQLite database example to use a CursorLoader
to populate the ListView
.