Это потому, что вы используете sleep
вместо того, чтобы что-то делать. Предположительно, вы хотите получить что-то из Интернета; сделайте это и отправьте себе это сообщение netAccessEnd
только тогда, когда соединение завершится или прервется.
Замена sleep
другой формой задержки, в которой все еще используется жестко заданный интервал (например, 1 секунда), - плохая идея. Если это занимает менее 1 секунды, вы заставляете пользователя ждать дольше, чем необходимо. Если это занимает более 1 секунды, вы снимаете индикатор, прежде чем фактически закончите с тем, что ожидает пользователь.
Вам нужно убрать индикатор, когда все, что пользователь ожидает, завершается - не раньше, не позже.