我正在使用asyncTask()
在我的活动进行时进行位图交换,所有工作都很好;直到我结束任务所在的活动。任务的线程进入“等待”状态而不是被销毁?我已取消,并检查了.isCancelled()
的返回值。这不会是一个问题,除非我再次从MAIN活动重新启动我的活动,它实际上会为新的asyncTask()
创建一个新线程;从而让旧的人坐在那里“等待”在后台?这是一个错误,还是我只是错误地使用了这个功能?
答案 0 :(得分:3)
AsyncTask使用线程池。在调试面板中看到4/5异步任务是正常的。只需确保您的异步任务不包含对活动的强引用(尝试将这些异步任务设置为静态内部类(或事件单独的类),并让它们将WeakReference保存到活动而不是强引用。
答案 1 :(得分:0)
我认为你应该在doInBackground函数中使用静态标志变量来终止操作或循环。这样你就可以完成任务