diff --git a/core/java/android/os/AsyncTask.java b/core/java/android/os/AsyncTask.java index e74697ac26da4..823134b5cab93 100644 --- a/core/java/android/os/AsyncTask.java +++ b/core/java/android/os/AsyncTask.java @@ -401,6 +401,9 @@ public abstract class AsyncTask { * publish updates on the UI thread while the background computation is * still running. Each call to this method will trigger the execution of * {@link #onProgressUpdate} on the UI thread. + * + * {@link #onProgressUpdate} will note be called if the task has been + * canceled. * * @param values The progress values to update the UI with. * @@ -408,8 +411,10 @@ public abstract class AsyncTask { * @see #doInBackground */ protected final void publishProgress(Progress... values) { - sHandler.obtainMessage(MESSAGE_POST_PROGRESS, - new AsyncTaskResult(this, values)).sendToTarget(); + if (!isCancelled()) { + sHandler.obtainMessage(MESSAGE_POST_PROGRESS, + new AsyncTaskResult(this, values)).sendToTarget(); + } } private void finish(Result result) {