62,568
社区成员




public class TimerRun {
public static void main(String[] args) {
Timer timer = new Timer();
MyTask myTask = new MyTask(timer);
timer.schedule(myTask, 0);
}
}
class MyTask extends TimerTask{
Timer timer = null;
public MyTask(Timer timer) {
this.timer = timer;
}
@Override
public void run() {
runTask();
createdNewTask();
removeCurrentTaskFromTimer();
}
private void runTask(){
//your business
}
private void removeCurrentTaskFromTimer(){
this.cancel();
timer.purge();
timer = null;
}
private void createdNewTask(){
MyTask myTask = new MyTask(timer);
timer.schedule(myTask, getNextRunTime());
}
private long getNextRunTime(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.MONTH, 1);
return calendar.getTimeInMillis();
}
}