2012-09-20 3 views
0

시스템 트레이에 컴퓨터 날짜를 지속적으로 확인하는 Java 프로그램을위한 방법이 있습니까? 어쩌면 1 초마다가 아니라 매분마다? 컴퓨터의 모든 리소스를 모두 차지하지 않고도 완료 할 수 있습니까?Java가 지속적으로 날짜 확인

지금은 버튼 누르기에서 날짜를 확인하는 데이트 체크 메소드를 실행하려고 생각하고 있지만 그저 절름발이이며 원하는대로 작동하지 않을 것입니다.

+0

왜'new Date()'로 날짜를 검사하고 그 후에 60000ms 동안 잠자기 할 스레드를 생성하지 않습니까? – svz

+0

내가 왜 데이트 상대를 폴링하는지 묻는다면 어떨까요? 왜 날짜를 한 번 샘플링 한 다음 원하는 날짜의 타이머를 만드시겠습니까? – naugler

답변

3

checkDate 메소드에 필요한 리소스 만 사용합니다 (눈에 띄지 않는 약간의 오버 헤드). a ScheduledExecutorService을 사용할 수 있습니다.

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); 
Runnable r = new Runnable() { 
    @Override 
    public void run() { 
     checkDate(); 
    } 
}; 
scheduler.scheduleAtFixedRate(r, 1, 1, TimeUnit.MINUTES); 
+0

대단히 감사합니다. 아마도 가능할 것입니다! – Granitas

1

당신은 Quartz처럼 스케줄링 도서관에서 보거나 java.util.concurrentScheduledExecutorService 제공하는 지원을 사용해야합니다.