Android:清理AsyncTask

时间:2012-05-18 21:57:34

标签: java android

随着时间的推移,我的应用程序使用了很多AsyncTasks,我在调试器中注意到它们不会消失,即使完成它们仍然会显示为活动线程。完成任务后告诉垃圾收集器杀了它吗?

1 个答案:

答案 0 :(得分:1)

编辑:Lenik在下面指出我的原始答案并不是取消AsyncTask的正确方法。

AsyncTask有一个完整而优雅的取消系统。当您准备取消时,请在您的任务上调用cancel(true)方法。如果您正在运行内部循环,请使用isCancelled()检查状态,如果返回true,则相应地退出循环。这样做的另一个好处是,在调用onCancelled(Object)并完成cancel(boolean)后,在UI线程上调用doInBackground(Object[])方法。然后将对任务的引用设置为null。

谢谢Lenik!如果您发布了答案,我将删除此答案,以便您获得信用。

相关问题