У меня есть небольшое сомнение в выполнении Async. задача: я хочу свести к минимуму время, затраченное на HTTP-запросы, выполняемые моим приложением, поэтому после некоторого R & D в Интернете я выбрал вариант, описанный ниже. Мой вопрос заключается в использовании кода, описанного ниже, мои запросы будут обрабатываться параллельно, если да, то это лучший эффективный метод, если не так, как я могу заставить их выполнять параллельно, чтобы пользователю не приходилось много ждать! С наилучшими пожеланиями.AsyncTasks параллельное выполнение
if (isInternetAvailable) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
new DownloadXmlTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, URLORDERLIST);
new DownloadXmlTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, URLORDERDETAILS);
new DownloadXmlTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, URLCUSTOMERDETAILS);
} else {
new DownloadXmlTask().execute(URLORDERLIST);
new DownloadXmlTask().execute(URLORDERDETAILS);
new DownloadXmlTask().execute(URLCUSTOMERDETAILS);
}
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(
getApplicationContext(),
"Fetch Data",
Toast.LENGTH_LONG).show();
}
});
} else {
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(
getApplicationContext(),
"Please Try Again Later,No internet Connectivity Detected!",
Toast.LENGTH_SHORT).show();
}
});
}
Да будет выполняться параллельно, попробуйте использовать 'executeOnExecutor (Asy ncTask.SERIAL_EXECUTOR, mArgs); 'и вы увидите разницу в том, насколько медленнее это –
возможный дубликат [параллельной параллельной работы AsyncTask] (http://stackoverflow.com/questions/13910508/running-parallel-asynctask) –