java.util.Timer 재시작 하는방법 [Timer already cancelled.]
결론부터 말하자면 Timer는 재시작 할 수 없다.
cancel 하고 재시작 하려면 Timer already cancelled. ~ timer cancel Task already scheduled or cancelled
이런거만 나온다... 취소했는데 재시작 한다고.. 어떻게 해야되는데~~
그냥 이런식으로 짜야한다. 그냥 새로 선언하는 방법 밖에 없다고 한다. 그래서 새로 생성하는 메소드를 만들어줌..
public void tempTask() { TimerTask task = new TimerTask() { @Override public void run() { //todo } }; tmr = new Timer(); tmr.schedule(task, 0, 1000); } //멈출때 tmr.cancel(); //다시 재시작 할때 tempTask();
Thread.sleep 이 swing 같은 java gui 기반에서 쓰면 문제 생겨서 (Thread.sleep 동안 gui도 같이 멈춰버림)
그래서 Timer를 쓰게 되었는데 재시작이 안되서...
만약 Timer 의 간격을 바꾸고 싶을때도 따로 메소드가 없고 tempTask 에 파라메타 넘겨서 해줘야 한다는 것...
왜 이렇게 불편하게 만든것인가..