Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TimerTask取消_Java_Timer - Fatal编程技术网

Java TimerTask取消

Java TimerTask取消,java,timer,Java,Timer,我有以下问题。每隔2秒,程序将进入if语句中。在这个if语句中,我希望有一个计时器,在15秒后给我一条消息。计时器应以1秒的延迟运行。但是,当我使用计时器“等待”时,if语句将再执行7次。我的问题是,我总是在同一时间运行7个相同的TimerTask。我怎样才能解决这个问题 if (response == true) { final Timer timer = new Timer(); final int keepAliveTimeout = 15000; //15 seconds

我有以下问题。每隔2秒,程序将进入if语句中。在这个if语句中,我希望有一个计时器,在15秒后给我一条消息。计时器应以1秒的延迟运行。但是,当我使用计时器“等待”时,if语句将再执行7次。我的问题是,我总是在同一时间运行7个相同的TimerTask。我怎样才能解决这个问题

if (response == true) {
  final Timer timer = new Timer(); 
  final int keepAliveTimeout = 15000; //15 seconds
  timer.schedule(new TimerTask() {
    @Override
    public void run() {
      if (response) {
        response = false;
        Log.i(TAG, "********Response******");
        timeoutCounter = 0;
      } else if (timeoutCounter > keepAliveTimeout) {
        Log.i(TAG, "********Timer Timeout******");
      }

      Log.i(TAG, "********Timer******");
      timeoutCounter = timeoutCounter + 1000;
    }
  }, 0, 1000);
}
发件人:

公共作废计划(TimerTask任务, 久拖不决,, 长周期)

将指定的任务安排为重复的固定延迟执行,从指定的延迟后开始。随后的执行大约按规定的时间间隔定期进行

这意味着您可以毫不延迟地运行任务,每秒钟从以下位置执行一次:

公共作废计划(TimerTask任务, 久拖不决,, 长周期)

将指定的任务安排为重复的固定延迟执行,从指定的延迟后开始。随后的执行大约按规定的时间间隔定期进行

这意味着您可以毫不延迟地运行任务,每秒钟执行一次