У меня есть метод TIMER_funk()
public void TIMER_funk(int seco) {
this.sec = seco;
timer_sec.schedule(new TimerTask() {
@Override
public void run() {
Platform.runLater(new Runnable() {
@Override
public void run() {
if(sec==15)
{Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("You need to work");
alert.setHeaderText(null);
alert.setContentText("15 minutes!!!");
alert.showAndWait();}
if (sec > 0) {
sec--;
int minutes = sec / 60;
int seconds = sec % 60;
SECONDS.setTextFill(seconds < 4 ? Color.RED : Color.BLACK);
MINUTES.setText((minutes < 10?"0":"") + minutes);
SECONDS.setText((seconds < 10?"0":"") + seconds);
}else if(sec==0){timer_sec.cancel();return;}
}
});
}
}, 1000, 1000);
}
и мне нужно выполнить этот метод в другом методе, который уже создан, последовательно, друг за другом.
TIMER_funk(13); TIMER_funk(15); //один после другого
Но тут есть проблема, когда я их использую как выше, то скорость обратного счета секунд увеличивается кратно, мне этого не нужно. Один метод отработал, второй начал.
@Kolia, Вам нужен механизм простейших очередей. Код на java не могу привести, так как уже ничего из неё не помню, покажу на псевдокоде
// Создадим переменную в которой будем хранить задачи для последовательного выполнения
Set<Timer> list = new Set();
// Создадим переменную, которая будет хранить активную задачу, если такая сейчас выполняется
Timer currentTask = null;
// Добавляем в очередь задачу
list.put(timer)
// При добавлении мы кладем её в очередь и проверяем есть ли активная задача
put(Timer task) {
this.add(task);
if (!currentTask) {
currentTask = task;
currentTask.run();
}
}
// Метод run должен уметь при завершении удалить себя из очереди и попробовать найти следующую задачу и запустить её
run() {
// Тут какая-то работа
Timer newTask = list.popFirst();
currentTask = newTask;
currentTask.run();
}
Итого мы имеем самую простейшую систему очередей заданий, которые при завершении текущей, запускают следующее из очереди.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть проект(maven) на java-сервлетах, написан в ideaЛокально работает через томкат
Это злой рок какой то, после того как я выложил свое приложение в альфа тестирование понеслись ошибки, причем не только в релиз версии а так...