随着时间的推移,我的应用程序使用了很多 AsyncTask,我在调试器中注意到它们并没有消失,即使它们完成后它们仍然显示为活动线程。任务完成后有没有办法告诉垃圾收集器杀死它?
问问题
2595 次
1 回答
1
编辑:Lenik 在下面指出,我原来的答案不是取消 AsyncTask 的正确 android 方式。
AsyncTask 有一个完整而优雅的取消系统。cancel(true)
当您准备取消时,调用您的任务的方法。如果您正在运行内部循环,请使用isCancelled()
来检查状态,并在返回时适当地退出循环true
。这具有在调用并完成onCancelled(Object)
后在 UI 线程上调用您的方法的额外好处。然后将对您的任务的引用设置为空。cancel(boolean)
doInBackground(Object[])
谢谢列尼克!如果您发布答案,我将删除此答案,以便您获得信用。
于 2012-05-18T22:44:43.713 回答