Time, TimerTask java

33
13 июня 2018, 20:40

Есть метод set() который задает значение enum - STARTED. Как сделать так, чтобы через определенное время duration значение enum задалось как FINISHED. В этот период можно вызывать другой метод doSomething() и в зависимости от состояния enum (STARTED или FINISHED) в консоль выводятся разные сообщения. Думаю, что нужно использовать timer.schedule(timerTask, long delay), но не знаю как именно.

Answer 1
import java.util.Timer;
import java.util.TimerTask;
enum SomeEnum {
    STARTED,
    FINISHED
}
public class Example {
    private volatile SomeEnum someEnum;
    private static int DURATION = 5000;
    public void set() {
        someEnum = SomeEnum.STARTED;
        new Timer(true).schedule(new TimerTask() {
            @Override
            public void run() {
                someEnum = SomeEnum.FINISHED;
            }
        }, DURATION);
    }
    public boolean doSomething() {
        switch (someEnum) {
            case STARTED:
                System.out.println("Tick");
                return true;
            case FINISHED:
                System.out.println("Buy");
                return false;
            default:
                return false;
        }
    }
    public static void main(String[] args) throws InterruptedException {
        Example obj = new Example();
        obj.set();
        while (obj.doSomething()) {
            Thread.sleep(500);
        }
    }
}
READ ALSO
Android Как достать Дату

Android Как достать Дату

ЗдраствуйтеМне нужно дастать Текущею дату и сравнить с датой сохраненой например в sharedPreferences

50
Хранения данных Андроид

Хранения данных Андроид

Всем приветМожно ли как то сохранить информацию так чтобы оно имелось даже после того как приложения будет удалено и заново установлено?...

56