AsyncTask线程永远不会死

Com*_*ish 112 multithreading android android-asynctask

我正在使用AsyncTasks来获取数据以响应用户按下按钮.这很好用并且在获取数据时保持接口响应,但是当我检查Eclipse调试器中发生了什么时,我发现每次AsyncTask创建一个新的(这通常是因为它们只能使用一次),正在创建一个新线程,但从未终止.

结果是大量的AsyncTask线程就坐在那里.我不确定这在实践中是否是一个问题,但我真的想摆脱那些额外的线程.

我怎么能杀死这些线程?

Com*_*are 202

AsyncTask管理一个用ThreadPoolExecutor.创建的线程池.它将有5到128个线程.如果有超过5个线程,那么这些额外的线程将被移除最多10秒钟.(注意:这些数字适用于目前可见的开源代码,因Android版本而异).

请留下AsyncTask线程.

  • 大概是为了节省在以后的请求中分叉线程的时间. (7认同)

Tom*_*ard 24

除了CommonsWare的回复:

目前我正在使用Android 2.2,我的应用程序在任何时候都使用不超过一个AsyncTask,但我每x分钟创建一个新的.起初新的AsyncTask线程开始出现(新的AsyncTask的新线程),但是在5个线程之后(如CommonsWare所提到的),它们只在调试窗口中保持可见,并在需要新的AsyncTask线程时重新使用.他们只是呆在那里直到调试器断开连接.

  • 是的,已确认:我看到的AsyncTasks不超过5个. (2认同)