在我的应用程序中,我每隔5秒就会不断创建一个AsyncTask。我在调试期间检查了任务,并且可以清楚地看到任务总是完成其进程并退出doInBackground方法。 onPostExecute中没有代码被执行过。然而,正如我在Eclipse中看到的那样,AsyncTask继续保留在内存中。我想也许它只会被重用于下一个循环或最终收集垃圾,但另一个被创建并继续。最终,它们会被创建并减慢系统速度。
可能是什么潜在问题?
答案 0 :(得分:1)
AsyncTask管理使用ThreadPoolExecutor创建的线程池。它 将有5到128个线程。如果有超过5个线程, 那些额外的线程将坚持最多10秒钟之前 被删除。 (注意:这些数字是针对目前可见的开放 源代码,因Android版本而异。
请单独保留AsyncTask线程,