protected final void publishProgress(Progress... values) {
        if (!isCancelled()) {
            sHandler.obtainMessage(MESSAGE_POST_PROGRESS,
                    new AsyncTaskResult<Progress>(this, values)).sendToTarget();
        }
    }
protected final void publishProgress ( Progress ... values ) { if ( ! isCancelled ( ) ) { sHandler . obtainMessage ( MESSAGE_POST_PROGRESS , new AsyncTaskResult < Progress > ( this , values ) ) . sendToTarget ( ) ; } }
This method can be invoked from {@link #doInBackground} to
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.

@see #onProgressUpdate
@see #doInBackground