私はこのコードを持っています。これは基本的に私のアプリケーション用のカスタムタイマーを提供します。このクラスのisTimerRunning()の実装方法
import java.util.Timer;
import java.util.TimerTask;
import org.apache.log4j.Logger;
public class SMSFirewallTimer {
private static Logger logger = Logger.getLogger(SMSFirewallTimer.class);
Timer timer;
String timerId;
public SMSFirewallTimer(int seconds, String string) {
timer = new Timer();
timerId = string;
logger.debug("SMSFirewallTimer: timer started for: "+seconds +"seconds");
timer.schedule(new Timeout(string), seconds*1000);
}
public void cancelTimer()
{
this.timer.cancel();
logger.debug("SMSFirewallTimer: Cancelling timer for : " + this.timerId);
}
class Timeout extends TimerTask {
private String string;
public Timeout(String string) {
this.string = string;
}
@Override
public void run() {
logger.debug("SMSFirewallTimer: Time's up! for: " + this.string);
timer.cancel(); //Terminate the timer thread
}
}
}
今の問題は、私はタイマーがまだ実行されているかどうかということを私に教えてくれますし、それはまた、心の中でタイムアウトを維持する必要がありSMSFirewallTimer
でisRunning()
方法が欲しいという問題が生じます。
私はちょうど私たちがcancelTimer()
を使用している場合、それは良いだけ保持しているこのクラスのisTimer
としてブール値を宣言し、それは文句を言わないその別の予定方式new Timeout(string)
として、タイマーの期限が切れているかどうかを知るようになっている場合。
これは問題なく動作します。 – piyushj