Java работа с Timer

218
25 ноября 2017, 10:08

Здравствуйте, никак не могу понять, как сделать так, чтобы выводить сколько осталось времени до конца таймера. вот код:

timer.schedule(new TimerTask() {
    @Override
    public void run() {
        // sout
    }
}, 2*60*1000);

Может быть кто-нибудь натолкнет или опишет, как это можно реализовать...

Answer 1

Так вам не пойдет:

private static long TIME = 2*60*1000;
timer.schedule(new TimerTask() {
    private final long startTime = System.currentTimeMillis();
    @Override
    public void run() {
        System.out.println("Осталось" + (TIME -
                  System.currentTimeMillis()  - startTime))
    }
}, TIME);

? Когда будет создан TimerTask запишется start_time, от которого и будет отсчитываться время работы. Можно вообще записывать время только после первого выполнения вроде:

private static long TIME = 2*60*1000;
    timer.schedule(new TimerTask() {
        private final Long startTime;
        @Override
        public void run() {
            if (startTime == null ) {
               startTime = System.currentTimeMillis();
            } 
            System.out.println("Осталось" + (TIME -
                      System.currentTimeMillis()  - startTime))
        }
    }, TIME);

Или у вас изначально TimerTask не знает сколько будет выполняться?

READ ALSO
ClassLoader не хочет считывать класс

ClassLoader не хочет считывать класс

Создал объект ClassLoader вот так

248
Сервер на Java, способ реализации

Сервер на Java, способ реализации

Доброго утраХочу сделать приложение: сервер на Java + клиенты (Десктоп на C#, андроид, ios, браузер), сомневаюсь какую из реализаций (или как это...

197
Java visual VM пишет cannot find jdk 1.7 or higher

Java visual VM пишет cannot find jdk 1.7 or higher

На пространстве интернета нашел вот эту статью (на самом деле нашел больше, но все предлагают именно это решение), что надо зайти по пути visualvm_139\etc\...

269
Stack overflow при создании объекта

Stack overflow при создании объекта

При создании GET в ответе получаю Stackoveflow ошибку

268