Как в нужное время вызвать функцию?

102
01 августа 2019, 10:50

Всем привет, цель приложения - в определённое время проигрывать mp3 файл, я делаю это с помощью soundPlay. При запуске приложения на смартфоне появляется белый экран и ничего больше, если прибавляю громкость на телефоне, ползунок не появляется, в 17:40 музыка играет и через несколько минут приложение перестаёт работать.

Вопрос: как оптимизировать это приложение ? Например что бы условие if проверялось не бесконечное число раз, а раз в минуту. Или как вызывать soundPlay в определённое время ?

Answer 1

Есть 2 возможных решения:

  1. Использовать Quartz. Будет много кода, но гибкое решение.

  2. Использовать стандартные Executors. Немного логики по вычислению следующего запуска и все работает:

    public static void main(String[] args) {
        // вычисляем нужную задержку 
        Duration duration = Duration.between(LocalDateTime.now(), LocalDateTime.of(2019, 1, 9, 18, 43));
        long secondsToWait = duration.toMillis() / 1000;
        service.schedule(() -> {
            System.out.println("HELLO WORLD");
            System.out.println(LocalDateTime.now().toString());
        }, secondsToWait, TimeUnit.SECONDS);
    }
    ...
    private static ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
    
READ ALSO
Почему Graphics размывается после масштабирования?

Почему Graphics размывается после масштабирования?

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

95
Не отображается вся строка элемента property

Не отображается вся строка элемента property

Возникла довольно интересная проблема в веб-приложении, написанном на JavaВсе надписи для jsp хранятся в файлах property, однако именно на кнопках...

102
Обработка результата програмы

Обработка результата програмы

Давно хотел написать программу, которая бы работала с результатами других программВ данном примере, у меня есть на смартфоне сканер штрих-кода,...

154
Не передаются параметры tomcat

Не передаются параметры tomcat

Поскольку не хочется хранить пароль от БД в коде, он хранится в системных параметрах, но на Tomcat есть проблемаВ папке с томкатом именно дистрибутив,

126