2012-03-02 76 views
0

我想根据用户通过单选按钮选择分钟(1分钟,15分钟,30分钟,45分钟等)将信息附加到文件上。对于每个单选按钮,在switch语句中都有大小写。我发现很难定期更新该文件,并且持续不断地有人知道如何根据所选分钟来做到这一点。 time_int是当前时间,update_point是文件需要更新的下一个时间间隔点?所以请帮助使用UPDATEFILE()方法。连续文件更新,递归功能?

public void radioStartTime(int t) { 

    time_int = System.currentTimeMillis(); //time radio button is clicked, clock  the time on click 
    System.out.println(sdf.format(time_int)); 

    /* a case/situation for different radio button selected*/ 
    switch (t) { 

    case 1: 
     update_point = time_int + (1*60000); 
     System.out.println(sdf.format(update_point)); 
     UPDATEFILE????(1); 
    break; 

      ..... 

回答

2

3种方式,你可以考虑去:

  • ,如果它是免费为您包括新的图书馆,你可以检查Quartz调度。它可以处理许多复杂的调度程序用例。

  • 你也可以检查java.util.Timer。它可以(从javadoc :) 计划后台任务执行后台线程。可以安排一次性执行任务,或定期重复执行任务。后者正是你需要的。

  • 写你自己的线程和睡眠/等待机制来实现你的目标。

无论如何,我不认为递归是解决调度问题的正确方法。

+0

这对我来说太复杂了,我可以用do while while循环吗?听起来像(3)的方式,听起来像 – user1106130 2012-03-02 11:34:56

+0

@ user1106130。你创建一个线程来完成任务(文件更新),并用while包装它,如:while(true或other condidtion){this.wait(yourinterval); updateFile();},但是你必须小心并处理一些细节,线程安全,阻塞等。 – Kent 2012-03-02 11:40:34