If doInBackground() is already running, cancel can only stop the operation if your implementation periodically check for isCancelled(). For instance:
for (int i = 0; i < count; i++) { if (isCancelled()) break; doStuff(i); } In addition, the parameter passed to cancel can be used to interrupt interruptible operations (I/O for instance.) I agree the documentation should be clearer though. On Tue, Apr 17, 2012 at 2:26 PM, Håvard Christensen <hav...@gmail.com> wrote: > I still think the documentation could be clearer. > > > On Tuesday, April 20, 2010 10:42:49 PM UTC+2, Nathan wrote: >> >> Cause it doesn't. >> >> I have a service running an Asynctask to do some work. >> >> I bind to it from an activity and call a cancel method. The service, >> in turn, calls AsyncTask.cancel(true); >> >> AyncTask.cancel returns true. Nonetheless, the thread is still running >> happily and still doing the things in doInBackGround, sending >> notifications along the way. >> >> There is no sign that it attempted to kill the thread. >> >> I am not using NDK calls or anything that I think should stop if from >> taking down the thread. >> >> What am I doing wrong? Or is this a known issue? >> >> Nathan >> >> public final boolean cancel (boolean mayInterruptIfRunning) >> >> Since: API Level 3 >> Attempts to cancel execution of this task. This attempt will fail if >> the task has already completed, already been cancelled, or could not >> be cancelled for some other reason. If successful, and this task has >> not started when cancel is called, this task should never run. If the >> task has already started, then the mayInterruptIfRunning parameter >> determines whether the thread executing this task should be >> interrupted in an attempt to stop the task. >> Parameters >> mayInterruptIfRunning true if the thread executing this task should >> be >> interrupted; otherwise, in-progress tasks are allowed to complete. >> Returns >> false if the task could not be cancelled, typically because it has >> already completed normally; true otherwise >> >> > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- Romain Guy Android framework engineer romain...@android.com -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en