我目前正在使用asyncTask()
在活动进行过程中进行一些位图图像的背景交换,所有操作都很好;直到任务所在的活动结束。任务的线程进入“等待”状态而不是被销毁?我取消了,还检查了.isCancelled()
的返回值。这并不是一个真正的问题,除非当我从一个主活动重新启动我的活动时,它实际上会为新的asyncTask()
创建一个新线程;从而让旧的线程“等待”在后台?这是一个bug,还是我只是不正确地使用了这个特性?
最佳答案
asynctask使用线程池。在调试面板中看到4/5个异步任务是正常的。只需确保异步任务不包含对活动的强引用(尝试使这些异步任务成为静态内部类(或事件独立类),并让它们包含对活动的weakreference而不是强引用。
Background task, progress dialog, orientation change - is there any 100% working solution?
AsyncTask threads never die
Simple Thread Management - Java - Android
等>尝试搜索“android异步任务线程池”了解更多。