1

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

4

1 回答 1

1

编辑:Lenik 在下面指出,我原来的答案不是取消 AsyncTask 的正确 android 方式。

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

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

于 2012-05-18T22:44:43.713 回答