У меня есть этот код, который в основном предоставляет пользовательский таймер для моего приложения.Как implemet 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
}
}
}
Теперь возникает проблема, что я хочу способ isRunning()
в SMSFirewallTimer
, который сообщит мне, что если таймер еще работает или нет, и он должен также иметь в виду, тайм-аут.
Если я просто объявить булево как isTimer
в этом классе только держит хорошо, если мы используем cancelTimer()
, но это не придет, чтобы знать, если таймер истек, а его другой запланированном метод new Timeout(string)
.
Он отлично работает, спасибо .... – piyushj