Я работаю над проектом Android. Одна из задач требует получения определенных значений из ArrayList и выполнения асинхронной функции для каждого значения.
Я придумал способ последовательно выполнять функцию для каждого значения, но это просто отменяет преимущества асинхронной функции.
Чего я хочу добиться, так это параллельно выполнять функцию с различными значениями.
Что я пробовал:
-создание новой переменной счетчика и выполнение тестов на 2 счетчиках, но это просто привело к созданию бесконечного цикла
private static void convertListCurrencies(final ArrayList<Logs> logsList, final FirestoreCallback<Logs> firestoreCallback){
if(mConvCount >= logsList.size()){
firestoreCallback.onCallback(logsList);
}else{
final Logs l = logsList.get(mConvCount);
mConvCount++;
Currencies.convertAmount(l.getAmount(), l.getCurrID(), NavigationLayout.mUser.getPrefCurrencyID(),
new FirestoreCallback<Double>() {
@Override
public void onCallback(ArrayList<Double> list) {
l.mAmount = list.get(0);
convertListCurrencies(logsList, firestoreCallback);
}
});
}
}
ожидаемый результат: выполнение нескольких Currencies.convertAmount (...) одновременно
фактический вывод: последовательное выполнение