2012-03-02 11 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あなたが行くことを検討することができる方法:

  • あなたが新しいライブラリを含めるようにするために、それは自由であるならば、あなたはクォーツスケジューラをチェックすることができます。多くの複雑なスケジューラの使用例を処理できます。

  • また、java.util.Timerをチェックすることもできます。それは(javadocから)のバックグラウンドスレッドでの将来の実行のためのタスクをスケジュールすることができます。タスクは、1回限りの実行、または定期的な間隔での繰り返し実行をスケジュールすることができます。。後者の部分はまさにあなたが必要とするものです。

  • あなたの目標を達成するための独自のスレッドとスリープ/ウェイトメカニズムを作成します。

とにかく、私は再帰がスケジューリングの問題を解決する正しい方法ではないと思います。

+0

私にとってはあまりにも複雑なthats、私はちょっとループを何とか使うことができますか? – user1106130

+0

@ user1106130 way(3)のように聞こえます。スレッドを作成してタスク(ファイル更新)を作成し、その間に次のようにラップします。while(trueまたは他の条件){this.wait(yourinterval); updateFile();}しかし、注意を払い、細部を処理し、スレッドセーフでブロックするなどしなければなりません。 – Kent