Я пытаюсь запустить этот файл после запланированного времени, но он запускался только один раз - PullRequest
3 голосов
/ 09 июля 2020

Я пытаюсь запустить этот аудиофайл через заданное время. Я знаю, что мне нужно, чтобы все было сброшено. Я просто озадачен, как именно go сделать это.

Как мне заставить это запускаться более одного раза по установленному расписанию ??

   Timer t = new java.util.Timer();
                TimerTask tt = new TimerTask() {
                    @Override
                    public void run() {
                        try {
                            audioClip.open(audioStream);
                        } catch (LineUnavailableException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        audioClip.start();
                        JOptionPane.showMessageDialog(null, "Click OK to Stop Music");
                        audioClip.stop();
                        t.cancel();
                    }
                };

        t.scheduleAtFixedRate(tt, 500, 1000);

1 Ответ

1 голос
/ 09 июля 2020

Вы вызываете метод Timer cancel внутри вашего метода TimerTask run. From Отмена таймера документация:

Обратите внимание, что вызов этого метода из метода run задачи таймера, которая была вызвана этим таймером, абсолютно гарантирует, что текущее выполнение задачи будет последним выполнение задачи, которое когда-либо будет выполнено этим таймером.

Тогда это работает должным образом, поэтому, если вы хотите выполнить более одного выполнения, удалите t.cancel() из вашего метода TimerTask run.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...