我有AsyncTask
名为TestTask
,我需要运行AsyncTask
10次。我在AsyncTask
循环中调用了for
十次。我希望所有10 AsyncTask
并行运行。我该如何实现呢?
答案 0 :(得分:1)
答案 1 :(得分:0)
对于你的问题有一个详细的解释 https://stackoverflow.com/a/36078608/2249287
在这个链接的答案之上,为了使你的问题工作解决方案是使用自定义执行器执行你的Asynctask,如下所示,
int mCorePoolSize = 10; (u can increase this number as well)
int mMaximumPoolSize = 80;
int mKeepAliveTime = 10;
BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>(mMaximumPoolSize);
Executor mCustomThreadPoolExecutor = new ThreadPoolExecutor(mCorePoolSize, mMaximumPoolSize, mKeepAliveTime, TimeUnit.SECONDS, workQueue);
YourAsyncTask.executeOnExecutor(mCustomThreadPoolExecutor);
你还可以验证所有10个AsyncTask在工作室中并行运行,如该链接所示......
答案 2 :(得分:-1)
for(int x=0;x<=10;x++)
{
new TestTask().execute(args...)
}