В моей программе Android я должен выполнить 4 или 5 сетевых вызовов. Каждый из них независим, и каждый может работать самостоятельно.Android: Как работают несколько отдельных задач async?
public void backGroundTasks() {
new AsyncTasks<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
List<User> users = RetrofitAdapter.getClient().getUsersSync();
saveToDB(users);
} catch (RetrofitError error) {
error.printStackTrace();
}
return null;
}
}.execute();
new AsyncTasks<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
List<Media> contents = RetrofitAdapter.getClient().getContentsSync();
saveToDB(contents);
} catch (RetrofitError error) {
error.printStackTrace();
}
return null;
}
}.execute();
new AsyncTasks<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
Profile profile = RetrofitAdapter.getClient().getProfile();
saveToDB(profile);
} catch (RetrofitError error) {
error.printStackTrace();
}
return null;
}
}.execute();
new AsyncTasks<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
List<Message> messages = RetrofitAdapter.getClient().getMessages();
saveToDB(messages);
} catch (RetrofitError error) {
error.printStackTrace();
}
return null;
}
}.execute();
}
Мои вопросы,
Как это AsyncTask
работа? Будет выполнен в parallel? или Будет вызван, но Сетевые запросы будет поставлен в очередь?
В некоторых ответах SO, о которых они упоминали, выполнить AsyncTasks
с executeOnExecutor()
. Помог ли он этому сценарию?
Примечание: Я использую библиотеку дооснащения для упрощения вызовов REST. У этого есть что-нибудь с этой проблемой?
Что именно * есть * проблема? –