10

私はこの次のコードを持っています:

Timer timer = new Timer();      
TimerTask task = new TimerTask() {

    @Override
    public void run() {
        // TODO Auto-generated method stub
    }
};

timer.schedule(task, 10000);//execute after 10 seconds

タスクがタイマーによって既に実行されているか、それともまだ実行されているかを判断できますか?

4

2 に答える 2

6

のような単純な変数を追加します。

  boolean isTaskCompleted = false;
  Timer timer = new Timer();      
  TimerTask task = new TimerTask() {

     @Override
     public void run() {
        // do stuff
        isTaskCompleted = true;
     }
  };

  timer.schedule(task, 10000);//execute after 10 seconds
于 2012-12-05T11:03:34.430 に答える
3

もちろん、

class CustomTask extends TimerTask {
    protected boolean isDone = false;
    public boolean isDone() {return isDone; }

    @Override
        public void run() {}
} 

CustomTask task = new CustomTask() {
    @Override
    public void run() {
       isDone=true;
    }
 };

編集: クラスの拡張に満足できない場合は、scheduledExecutionTime() メソッドを使用できます。タスクが実行されていない場合、これは 0 を返します。

http://docs.oracle.com/javase/6/docs/api/java/util/TimerTask.html

于 2012-12-05T11:03:49.787 に答える