android 2异步任务运行parellarly

时间:2017-05-26 05:28:22

标签: android android-asynctask

在我的项目中,我必须从服务器下载大约20到25个json文件数据并且必须解压缩,因此有2个进程1.download 2解压缩它。 我使用过2个异步任务。 1用于下载,第2用于解压缩..我从第1次执行后开始第2次异步。 我想做...如果一个文件下载启动第二个异步任务解压缩下载文件...但我面对它首先下载所有文件,然后开始解压缩...我怎么能克服这个? 我完成了

DownloadFileAsync myTask = new DownloadFileAsync();
        myTask.execute(params);

和onPostExecute

fileProcessParams params = new fileProcessParams(zipFile, unzipLocation);
        process_FileAsync process_fileAsync = new process_FileAsync();

        process_fileAsync.execute(params);

我有200mb +数据下载我正在使用异步任务或我必须使用任何其他任务?我还必须在下载此数据时更新UI。 提前谢谢

3 个答案:

答案 0 :(得分:2)

要并行运行多个AsyncTask,您可能希望在线程池执行程序中执行。

asyncTask.execute(params);

asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);

请注意,API 11中添加了executeOnExecutor

答案 1 :(得分:1)

试试这个

AsyncTaskCompat

26.0-alpha已在API ArrayList<Customers> mList=new ArrayList<>(); Customer customer=new Customer(); //fill the data in customer object customer.setfirst_name(" Name"): . . 中弃用。使用它会自行承担风险。

答案 2 :(得分:1)

尝试这样做:

private class Task1 extends AsyncTask<Void, Void, Void> {
...
...
    protected void onPostExecute(Void unused) { 
     //Do Ur Unzipping work
        new Task2().execute();//start unzipping Async Task
    }

}

同样,你必须放置新的Task3()。execute();在Task2的AsyncTask(解压缩后)的onPostExecute()方法中,对于第二个文件下载并继续这样