在Android中并行执行异步任务

时间:2014-04-27 03:46:12

标签: android performance android-asynctask threadpool

我有AsyncTask名为TestTask,我需要运行AsyncTask 10次。我在AsyncTask循环中调用了for十次。我希望所有10 AsyncTask并行运行。我该如何实现呢?

3 个答案:

答案 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...)
}