Всем привет, цель приложения - в определённое время проигрывать mp3 файл, я делаю это с помощью soundPlay. При запуске приложения на смартфоне появляется белый экран и ничего больше, если прибавляю громкость на телефоне, ползунок не появляется, в 17:40 музыка играет и через несколько минут приложение перестаёт работать.
Вопрос: как оптимизировать это приложение ? Например что бы условие if проверялось не бесконечное число раз, а раз в минуту. Или как вызывать soundPlay в определённое время ?
Есть 2 возможных решения:
Использовать Quartz. Будет много кода, но гибкое решение.
Использовать стандартные 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);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости