diff options
Diffstat (limited to 'core/java/android/content/AbstractThreadedSyncAdapter.java')
| -rw-r--r-- | core/java/android/content/AbstractThreadedSyncAdapter.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/core/java/android/content/AbstractThreadedSyncAdapter.java b/core/java/android/content/AbstractThreadedSyncAdapter.java index 154c4a6654ef..14bc5ddfaa1b 100644 --- a/core/java/android/content/AbstractThreadedSyncAdapter.java +++ b/core/java/android/content/AbstractThreadedSyncAdapter.java @@ -117,7 +117,7 @@ public abstract class AbstractThreadedSyncAdapter { if (mSyncThread != null && mSyncThread.mSyncContext.getSyncContextBinder() == syncContext.asBinder()) { - mSyncThread.interrupt(); + onSyncCanceled(mSyncThread); } } } @@ -207,4 +207,15 @@ public abstract class AbstractThreadedSyncAdapter { */ public abstract void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult); + + /** + * Indicates that a sync operation has been canceled. This will be invoked on a separate + * thread than the sync thread and so you must consider the multi-threaded implications + * of the work that you do in this method. + * + * @param thread the thread that is running the sync operation to cancel + */ + public void onSyncCanceled(Thread thread) { + thread.interrupt(); + } } |
