public
class
CursorLoader
extends AsyncTaskLoader<Cursor>
java.lang.Object | |||
↳ | android.content.Loader<android.database.Cursor> | ||
↳ | android.content.AsyncTaskLoader<android.database.Cursor> | ||
↳ | android.content.CursorLoader |
A loader that queries the ContentResolver
and returns a Cursor
.
This class implements the Loader
protocol in a standard way for
querying cursors, building on AsyncTaskLoader
to perform the cursor
query on a background thread so that it does not block the application's UI.
A CursorLoader must be built with the full information for the query to
perform, either through the
CursorLoader(Context, Uri, String[], String, String[], String)
or
creating an empty instance with CursorLoader(Context)
and filling
in the desired paramters with setUri(Uri)
, setSelection(String)
,
setSelectionArgs(String[])
, setSortOrder(String)
,
and setProjection(String[])
.
Public constructors | |
---|---|
CursorLoader(Context context)
Creates an empty unspecified CursorLoader. |
|
CursorLoader(Context context, Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
Creates a fully-specified CursorLoader. |
Public methods | |
---|---|
void
|
cancelLoadInBackground()
Called on the main thread to abort a load in progress. |
void
|
deliverResult(Cursor cursor)
Sends the result of the load to the registered listener. |
void
|
dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args)
Print the Loader's state into the given stream. |
String[]
|
getProjection()
|
String
|
getSelection()
|
String[]
|
getSelectionArgs()
|
String
|
getSortOrder()
|
Uri
|
getUri()
|
Cursor
|
loadInBackground()
Called on a worker thread to perform the actual load and to return the result of the load operation. |
void
|
onCanceled(Cursor cursor)
Called if the task was canceled before it was completed. |
void
|
setProjection(String[] projection)
|
void
|
setSelection(String selection)
|
void
|
setSelectionArgs(String[] selectionArgs)
|
void
|
setSortOrder(String sortOrder)
|
void
|
setUri(Uri uri)
|
Protected methods | |
---|---|
void
|
onReset()
Subclasses must implement this to take care of resetting their loader,
as per |
void
|
onStartLoading()
Starts an asynchronous load of the contacts list data. |
void
|
onStopLoading()
Must be called from the UI thread |
Inherited methods | |
---|---|
From
class
android.content.AsyncTaskLoader
| |
From
class
android.content.Loader
| |
From
class
java.lang.Object
|
CursorLoader (Context context)
Creates an empty unspecified CursorLoader. You must follow this with
calls to setUri(Uri)
, setSelection(String)
, etc
to specify the query to perform.
Parameters | |
---|---|
context |
Context
|
CursorLoader (Context context, Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
Creates a fully-specified CursorLoader. See
ContentResolver.query()
for documentation on the meaning of the
parameters. These will be passed as-is to that call.
Parameters | |
---|---|
context |
Context
|
uri |
Uri
|
projection |
String
|
selection |
String
|
selectionArgs |
String
|
sortOrder |
String
|
void cancelLoadInBackground ()
Called on the main thread to abort a load in progress.
Override this method to abort the current invocation of loadInBackground()
that is running in the background on a worker thread.
This method should do nothing if loadInBackground()
has not started
running or if it has already finished.
void deliverResult (Cursor cursor)
Sends the result of the load to the registered listener. Should only be called by subclasses. Must be called from the process's main thread.
Parameters | |
---|---|
cursor |
Cursor :
the result of the load
|
void dump (String prefix, FileDescriptor fd, PrintWriter writer, String[] args)
Print the Loader's state into the given stream.
Parameters | |
---|---|
prefix |
String :
Text to print at the front of each line. |
fd |
FileDescriptor :
The raw file descriptor that the dump is being sent to. |
writer |
PrintWriter :
A PrintWriter to which the dump is to be set. |
args |
String :
Additional arguments to the dump request.
|
Cursor loadInBackground ()
Called on a worker thread to perform the actual load and to return
the result of the load operation.
Implementations should not deliver the result directly, but should return them
from this method, which will eventually end up calling deliverResult(D)
on
the UI thread. If implementations need to process the results on the UI thread
they may override deliverResult(D)
and do so there.
To support cancellation, this method should periodically check the value of
isLoadInBackgroundCanceled()
and terminate when it returns true.
Subclasses may also override cancelLoadInBackground()
to interrupt the load
directly instead of polling isLoadInBackgroundCanceled()
.
When the load is canceled, this method may either return normally or throw
OperationCanceledException
. In either case, the Loader
will
call onCanceled(D)
to perform post-cancellation cleanup and to dispose of the
result object, if any.
Returns | |
---|---|
Cursor |
The result of the load operation. |
void onCanceled (Cursor cursor)
Called if the task was canceled before it was completed. Gives the class a chance to clean up post-cancellation and to properly dispose of the result.
Parameters | |
---|---|
cursor |
Cursor :
The value that was returned by loadInBackground() , or null
if the task threw OperationCanceledException .
|
void setProjection (String[] projection)
Parameters | |
---|---|
projection |
String
|
void setSelectionArgs (String[] selectionArgs)
Parameters | |
---|---|
selectionArgs |
String
|
void onReset ()
Subclasses must implement this to take care of resetting their loader,
as per reset()
. This is not called by clients directly,
but as a result of a call to reset()
.
This will always be called from the process's main thread.
void onStartLoading ()
Starts an asynchronous load of the contacts list data. When the result is ready the callbacks will be called on the UI thread. If a previous load has been completed and is still valid the result may be passed to the callbacks immediately. Must be called from the UI thread