Как сделать задержку в ходе выполнения цикла?
Необходимо сделать цикл, в котором происходит выполнения действия -> задержка (допустим секунда) -> опять действие. Мои попытки приводят к тому, что действие выполняется, только все задержки «суммируются» и используются одновременно, что приводит к тому, что результат выводиться только к концу цикла.
public void Add(View v) < Run(); >public void Run() < while(a!=5)< a++; String b = String.valueOf(a); myList.add(b); name=myList.toArray(new String[myList.size()]); RV.setAdapter(new Adapter(name)); try < Thread.sleep(100); >catch (InterruptedException e) <> > >
Прошу помочь если не кодом, то советом/ссылкой на нечто подобное.
Отслеживать
1,150 7 7 серебряных знаков 14 14 бронзовых знаков
задан 18 мар 2018 в 17:33
57 1 1 золотой знак 1 1 серебряный знак 6 6 бронзовых знаков
А где у вас там выводится резултат?
19 мар 2018 в 10:32
Возможно кто-то еще меняет переменную a (так как она, судя по всему глобальная).
19 мар 2018 в 14:15
опишите детально проблему
7 янв 2019 в 19:10
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
В чем проблема? Ваш вариант вполне подходит. Можно немного красивее:
for(int i = 0; i < 3; i++) < // Ваш код try < Thread.sleep(1000) >catch(InterruptedException ex) <> >
Все происходит как Вы и хотите: выполняется Ваш код -> задержка (1 сек) -> опять выполняется Ваш код . И так 3 раза.
Как сделать паузу в java
Паузу в выполнении программы можно задать с помощью метода sleep() :
import java.util.concurrent.TimeUnit; public class App public static void main(String[] args) throws InterruptedException Thread.sleep(1000); // пауза 1000 миллисекунд TimeUnit.SECONDS.sleep(1); // пауза 1 секунда > >
Как сделать задержку в java
Задержать выполнение программы мы можем с помощью метода sleep из java.util.concurrent.TimeUnit или Thread :
import java.util.concurrent.TimeUnit; public class App public static void main(String[] args) throws InterruptedException TimeUnit.SECONDS.sleep(1); // задержка 1 секунда Thread.sleep(1000); // задержка 1000 миллисекунд > >
Как сделать задержку времени в java
кроме как разделением программы на Threads вы и не задержите «данный элемент».
разве что вы создадите что-то иное с распараллеливанием процессов.
Остальные ответы
Вообще то именно этот метод в яве и существует для остановки на заданное количество милисекунд. Единственное, что если вы «плаваете» в много поточных приложениях — то нужно понимать, что когда вы запускаете ваше даже однопоточное приложение поток — уже существует, соответсвенно для того что бы его приостановить необходимо его сначала выбрать
Thread.currentThread().sleep(1000) ;//приостановит основной поток приложения на 1 секунду
___________________________________________________
Теперь разберемся с тем, что вы имеете под «не вся программа, а только данный элемент» ? если это относиться именно к «программе» — то вам ее надо разбить на несколько потоков, и задерживать необходимый. А если имеется в виду интерфейс — то надо проверять текущее время, и пока не наступил момент икс — держать нужный вам элемент — » заблокированным» . .ну без дара телепатии такой вот получается ответец.