我在ActivityB的Oncreate()中创建async任务。 在这项任务我正在一个无限while循环doInBackground()虽然我移动到前面胡亚蓉并附带再次向activityB,另一个异步任务得到了创建。doInBackground运行时可以停止asynctask吗?
我的问题现已有二无限while循环运行。当我转向上一个活动时是否可以停止异步任务?
我在ActivityB的Oncreate()中创建async任务。 在这项任务我正在一个无限while循环doInBackground()虽然我移动到前面胡亚蓉并附带再次向activityB,另一个异步任务得到了创建。doInBackground运行时可以停止asynctask吗?
我的问题现已有二无限while循环运行。当我转向上一个活动时是否可以停止异步任务?
当然...退房isCancelled():
public Void doInBackground(....) {
while(!isCancelled()) {
...endless activity...
}
return null;
}
非常感谢323go,它的工作很棒。 – Vignesh
有一个Cancel()
方法,但调用cancel(boolean mayInterruptIfRunning)
不一定停止后台进程的执行。
所有,通常情况是,会的AsyncTask执行onCancelled(),并且将无法运行onPostExecute()当它完成。
请参阅该文档(“取消一个异步任务”部分)
http://developer.android.com/reference/android/os/AsyncTask.html
我会查看应用的设计和重新工作,它让这种情况不会出现,而不是试图取消运行异步任务。
把''!isCancelled()''在你的循环条件中 然后调用''asyncTask.cancel(boolean); '' – 2012-12-04 07:33:23
我需要调用asyncTask.cancel(boolean);? OnBackPressed功能? – Vignesh
非常感谢特拉法加,它的工作很棒。 – Vignesh