Как заставить код запускаться один раз в фоновом цикле задач? - PullRequest
0 голосов
/ 06 марта 2019

У меня есть фон. Цикл задач выглядит следующим образом:

Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(1), event -> {
     if (hourNow >= cashCutOff_Start && hourNow <= cashCutOff_End - 1) {
//Run the code once
}
}));
fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);
fiveSecondsWonder.play();

Этот код делает цикл каждую секунду.Но я хочу сделать одну строку кода исполняемой после запуска этого кода.

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Просто удалите fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);

0 голосов
/ 06 марта 2019

Простое решение в два этапа.

Создайте логическую переменную:

private boolean hasRun = false;

Добавьте оператор if на вашей временной шкале:

Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(1), event -> {
    //check if code has run before
    if(!hasRun){
        //this will run only once
        //by setting hasRun = true;
        hasRun=true;
        //add your code here...
    }
    //this code will run in every KeyFrame
    //add your code here...
    }));
    fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);
    fiveSecondsWonder.play();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...