Может возникала у кого-то подобная ситуация?
естественно
я даже больше скажу, нельзя делать запросы или тяжелую логику в главном потоке. В этом и есть ответ, нужно все делать асинхронно, для этого есть rxJava, корутины, можно что то низкоуровневое использовать
когда отработал запрос, слушатель получает ответ и делается какая то логика
в активити кстати логику тоже нельзя прописывать. Изучайте чистую архитектуру, mvvm или mvi и корутины