我使用异步任务将联系人导入到文件中它运行良好但是在启动异步任务后如果我想在中间取消它那么如何停止它意味着在执行异步任务之前已经完成的异步任务应为null并停止asynch任务..我的代码在下面请帮助我..
答案 0 :(得分:2)
可以通过调用取消(布尔)随时取消任务。调用此方法将导致后续调用isCancelled() to return true
。调用此方法后,onCancelled(Object)
将在onPostExecute(Object)
返回后调用,而不是doInBackground(Object[])
。为确保尽快取消任务,您应始终定期从isCancelled()
检查doInBackground(Object[])
的返回值,如果可能,请选择(例如在循环内)。
答案 1 :(得分:1)
覆盖方法onCancelled()
并在该设置标记canceled = true;
中
并将此取消的变量传递给doInBackground
中的条件。
答案 2 :(得分:1)
我会的 而(!iscancelled()) 作为时间条件。因此,当您按下取消按钮时,请在AsyncTask上调用cancel(true)。这将导致while条件为假。然后doInBackground将退出。
如果你实现onCancel,这将在doInBackground之后调用,你可以将联系人设置为null。
希望有所帮助。