summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/ContentProviderClient.java
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-01-25 19:37:13 -0800
committerJeff Brown <jeffbrown@google.com>2012-01-27 17:33:21 -0800
commit75ea64fc54f328d37b115cfb1ded1e45c30380ed (patch)
tree4254a5d2d0662de8b606b38fea6987da17c130e3 /core/java/android/content/ContentProviderClient.java
parentebc016c01ea9d5707287cfc19ccc59b21a486c00 (diff)
downloadframeworks_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.java15
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} */