как остановить выполнение кода функцией до тех пор, пока не будет выполнено условие

#java #android-studio #wait

#java #android-studio #подожди

Вопрос:

Вот упрощенная версия моего кода. function1() нужно кое-что проверить в Интернете. Он должен делать это в фоновом режиме приложения (я не могу это изменить), что позволяет остальной части кода выполняться во время проверки Интернета. Выполнение этой функции может занять несколько секунд. Я не могу поместить журнал в конец функции 1, потому что он должен выполняться независимо от того, выполнена функция 1 успешно или нет, но только после завершения попытки. Как я могу добиться этого без использования таймера?

 if (condition) {

    if (condition2) {
        function1();
    }

    Log.i("Info", "This should not appear until function1 completes or fails");
}
 

Ответ №1:

Не проверяйте постоянно; это называется ожиданием занятости и неэффективно, особенно на мобильных устройствах (поскольку устройство не может перейти в режим низкого энергопотребления). Вместо этого используйте an AsyncCallback , чтобы запустить свой function1 и поместить сообщение журнала в обратный вызов.