Mam taki problem: we fragmencie mam przycisk po którego naciśnięciu idą 2 żądania GET do API,
API może mi zwrócić albo kod 200 albo np 404
Potrzebuję obsłużyć następujące przypadki:
- dostanę 2 x http 200 -> odpalam nowy fragment
- nie dostanę 2 x http 200 -> wyświetlam komunikat użytkownikowi
Jak to rozwiązać? Do wykonywania żadąń korzystam z retrofita i na jedno żądanie mam 2 opcje:
- albo będzie onRespone
- albo będzie onFailure
Moja propozycja jest taka aby wprowadzić zmienną counter i w dwóch żądaniach inkrementować ją. W momencie gdy counter == 2 to odpalam nowy fragment, jeśli counter po wykonaniu dwóch żądań < 2 wyświetlam komunikat.
Czy moje rozwiązanie jest okej?
Jak podejść do tematu synchronizacji?
Moja propozycja jest następująca: stworzyć metodę: private synchronized void asyncRequestCompleted i w tej metodzie inkrementować countera (counter to zwykła zmienna private int counter = 0)
tak tylko dodam że api nie mogę zmodyfikować, aby spełnić funkcjonalność muszę wykonać 2 żądania