diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-01-25 19:37:13 -0800 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2012-01-27 17:33:21 -0800 |
commit | 75ea64fc54f328d37b115cfb1ded1e45c30380ed (patch) | |
tree | 4254a5d2d0662de8b606b38fea6987da17c130e3 /core/java/android/content/ContentProviderClient.java | |
parent | ebc016c01ea9d5707287cfc19ccc59b21a486c00 (diff) | |
download | frameworks_base-75ea64fc54f328d37b115cfb1ded1e45c30380ed.zip frameworks_base-75ea64fc54f328d37b115cfb1ded1e45c30380ed.tar.gz frameworks_base-75ea64fc54f328d37b115cfb1ded1e45c30380ed.tar.bz2 |
Implement a cancelation mechanism for queries.
Added new API to enable cancelation of SQLite and content provider
queries by means of a CancelationSignal object. The application
creates a CancelationSignal object and passes it as an argument
to the query. The cancelation signal can then be used to cancel
the query while it is executing.
If the cancelation signal is raised before the query is executed,
then it is immediately terminated.
Change-Id: If2c76e9a7e56ea5e98768b6d4f225f0a1ca61c61
Diffstat (limited to 'core/java/android/content/ContentProviderClient.java')
-rw-r--r-- | core/java/android/content/ContentProviderClient.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/core/java/android/content/ContentProviderClient.java b/core/java/android/content/ContentProviderClient.java index 0540109..9a1fa65 100644 --- a/core/java/android/content/ContentProviderClient.java +++ b/core/java/android/content/ContentProviderClient.java @@ -47,7 +47,20 @@ public class ContentProviderClient { /** See {@link ContentProvider#query ContentProvider.query} */ public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs, String sortOrder) throws RemoteException { - return mContentProvider.query(url, projection, selection, selectionArgs, sortOrder); + return query(url, projection, selection, selectionArgs, sortOrder, null); + } + + /** See {@link ContentProvider#query ContentProvider.query} */ + public Cursor query(Uri url, String[] projection, String selection, + String[] selectionArgs, String sortOrder, CancelationSignal cancelationSignal) + throws RemoteException { + ICancelationSignal remoteCancelationSignal = null; + if (cancelationSignal != null) { + remoteCancelationSignal = mContentProvider.createCancelationSignal(); + cancelationSignal.setRemote(remoteCancelationSignal); + } + return mContentProvider.query(url, projection, selection, selectionArgs, sortOrder, + remoteCancelationSignal); } /** See {@link ContentProvider#getType ContentProvider.getType} */ |