取消ASyncTask

eni*_*der 4 android

可以在AsyncTask同时完成被取消onPostExecute()

或者,一旦doInBackground()完成任务再也无法取消?

Sli*_*ito 5

根据我的理解,任务只在doInBackground()状态下运行,onPostExecute()意味着任务已完成且无法取消.

cancel()尝试取消执行此任务.如果任务已经完成,已经取消或由于某些其他原因无法取消,则此尝试将失败.如果成功,并且在调用cancel时此任务尚未启动,则此任务永远不会运行.如果任务已经启动,则该mayInterruptIfRunning参数确定是否应该中断执行此任务的线程以尝试停止该任务.

调用此方法将导致在返回onCancelled(Object)后在UI线程上调用doInBackground(Object[]).调用此方法可确保onPostExecute(Object)永远不会调用此方法.调用此方法后,应该检查isCancelled()定期返回的值,doInBackground(Object[])以尽早完成任务.