3 回答
TA贡献1777条经验 获得超3个赞
AsyncTask
管理使用创建的线程池ThreadPoolExecutor
。它将具有5到128个线程。如果有5个以上的线程,那么这些多余的线程将最多保留10秒钟,然后再将其删除。(注意:这些数字是针对当前可见的开放源代码,并且因Android版本而异)。
请不要理会AsyncTask
线程。
TA贡献1772条经验 获得超6个赞
目前,我正在使用Android 2.2,并且我的应用程序随时都使用不超过一个AsyncTask,但是我每隔X分钟创建一个新的AsyncTask。最初,新的AsyncTask线程开始出现(新的AsyncTask的新线程),但是在5个线程(如CommonsWare所述)之后,它们仅在调试窗口中可见,并在需要新的AsyncTask线程时重新使用。他们只是呆在那里,直到调试器断开连接。
TA贡献1868条经验 获得超4个赞
使用ThreadPoolExecutor。
BlockingQueue workQueue= new LinkedBlockingQueue<Runnable>(100); // Work pool size
ThreadPoolExecutor executor = new ThreadPoolExecutor(
Runtime.getRuntime().availableProcessors(), // Initial pool size
Runtime.getRuntime().availableProcessors(), // Max pool size
1, // KEEP_ALIVE_TIME
TimeUnit.SECONDS, // KEEP_ALIVE_TIME_UNIT
workQueue);
Runnable使用execute()方法发布任务 。
void execute (Runnable command)
在将来的某个时间执行给定的任务。该任务可以在新线程或现有池线程中执行
- 3 回答
- 0 关注
- 329 浏览
添加回答
举报