이것 개발자마다 조금 씩 차이가 있겠는데요.
제가 주로 쓰는 방법은
thread에서 system.currentTimeMillis()를 주로 이용합니다. 이 결과를 주어진 정적변수랑 비교하고 정적변수는 thread의 시작에 초기화하고, 특정 이벤트가 일어나면(예를 들면 사용자입력) 이때 다시 이벤트 시간으로 세팅합니다.
그러면 thread에서는 현제시간이 특정시간을 초과하는 순간 동작하게 하는것이지요
static long NextTime; <-- 멤버변수로 지정
//// thread 의 run 구조
long currtime;
setNextTime();
while(true) {
currtime=system.currentTimeMills();
if(NextTime <currtime) {
------------ code ------------
}
}
/// thread class의 새 멤버함수
public void setNextTime() {
NextTime = system.currentTimeMillis() + 18000000; // 5분 추가
}
머 대충 위같은 구조를 주로 씀니다.
저렇게 만들어서 쓰래드의 setNextTime()만 시간을 늘리고 싶은 이벤트에서 호출하게되면 되는 구조를 사용합니다.