Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 同时多次使用一个异步任务_Android_Android Asynctask_Download - Fatal编程技术网

Android 同时多次使用一个异步任务

Android 同时多次使用一个异步任务,android,android-asynctask,download,Android,Android Asynctask,Download,我有一个程序与一个按钮点击,当点击,4下载应同时执行。为此,我将ASyncTask类与for迭代器一起使用: for(int i=0;i<downloadCounts;i++){ new DownloadTask().execute(url[i]); } 所有日志显示一切正常,文件已完全下载。但每一块下载都是分开的,而且是有序的。我想同时下载块,而不是只调用AsyncTask的.execute()方法,使用以下逻辑来实现您想要的: if( Build.VERSION.SDK_INT &g

我有一个程序与一个按钮点击,当点击,4下载应同时执行。为此,我将
ASyncTask
类与
for
迭代器一起使用:

for(int i=0;i<downloadCounts;i++){
new DownloadTask().execute(url[i]);
}

所有日志显示一切正常,文件已完全下载。但每一块下载都是分开的,而且是有序的。我想同时下载块,而不是只调用AsyncTask的
.execute()
方法,使用以下逻辑来实现您想要的:

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) {   
    new MyAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
} else {
    new MyAsyncTask().execute(params);
} 

从AsyncTask的
.execute()
方法中查看更多信息,而不是只调用AsyncTask的
.execute()
方法,使用此逻辑来实现您想要的:

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) {   
    new MyAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
} else {
    new MyAsyncTask().execute(params);
} 

查看

中的更多信息根据您的代码,在我看来应该开始四次下载。但是,请发布更多的代码,以便我们能够提供帮助。@Ruchiraranda根据您的代码添加了更多详细信息,在我看来,应该开始四次下载。但是,请发布更多的代码,以便我们能够提供帮助。@RuchiraRandana补充了更多的细节。这是非常好的工作。非常感谢。但我所有的进度条都显示相同的百分比。你知道有什么解决办法吗?但这不准确吗?是的。异步任务非常有效。但是我不能给它们分配独立的“ProgressBar.setProgress(int)”。我想说的是你的实现,你执行任务的地方。这很好,很有效。非常感谢。但我所有的进度条都显示相同的百分比。你知道有什么解决办法吗?但这不准确吗?是的。异步任务非常有效。但是我不能将独立的“ProgressBar.setProgress(int)”分配给这些任务。我想说的是您的实现,即您执行任务的地方。