Android Studio: изменение видимости элемента макета, неправильный порядок исполнения - PullRequest
0 голосов
/ 04 июля 2019

Мы пытаемся показать экран загрузки, выполнить некоторые дорогостоящие операции (представленные в спящем режиме) и после завершения операции отобразить сообщение.

ожидаемое поведение: ШАГ 1: видимость rl_loading (RelativeLayout) установлена ​​на видимость ШАГ 2: приложение спит в течение 2 секунд ШАГ 3: отображается сообщение

что на самом деле происходит: ШАГ 2: приложение спит в течение 2 секунд ШАГ 1 + 3: изменения видимости и сообщение отображаются одновременно

Может ли кто-нибудь объяснить, почему это происходит и что нужно изменить для достижения ожидаемого поведения?

 mainIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                rl_loading.setVisibility(View.VISIBLE); //STEP 1
                try { 
                    Thread.sleep(2000); //STEP 2
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                msg("message"); //STEP 3
            }
        });
...