在我的项目中,我必须从服务器下载大约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。 提前谢谢
答案 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()方法中,对于第二个文件下载并继续这样