2015-05-22 3 views
1

Прямо сейчас у меня есть таймер с задержкой в ​​5 секунд, однако мне нужна другая задержка после его запуска. Я просматриваю несколько фотографий, и во время первого раунда он должен показывать их в течение 5 секунд. После этого он должен показать их на 10 секунд. Как можно изменить задержку таймера во время выполнения?Как изменить задержку таймера на каждый раз, когда он запускается?

Что должно произойти:

  • Start Timer
  • Выполнить в течение 5 секунд
  • Изменение задержки
  • Выполнить в течение 10 секунд
+0

дублировать http://stackoverflow.com/questions/8386545/java-timer-with-not-fixed-delay –

+1

Что 'Timer'? 'java.util.Timer' или' javax.swing.Timer'? – MadProgrammer

ответ

0

Попробуйте добавить код!

Вам нужно проверить, имеет ли таймер 5 секунд 10 и так далее.

int delayTime = 5; 
//run first delay 
if (delayTime == 5){ 
delayTime = 10; 
} 

Это код для идеи, не знаю, как это выглядит в вашем проекте.

0

Там может быть два подхода для случая использования:

Первый подход:

Как сказать, что я хочу, чтобы показать картину на 1000 секунд. Поэтому я буду выполнять цикл до 1000 секунд; или если вы хотите запустить его бесконечно, вы можете изменить условие в цикле. Ниже код будет выполнять цикл for после каждой 5-секундной задержки.

int delayTimeInMiliSec; 
    for(int delayTime = 5 ; delayTime<=1000; delayTime = delayTime+5){ 
     delayTimeInMiliSec = delayTime * 1000; 
     // here Call your method that shows pictures 
     Thread.sleep(delayTimeInMiliSec); 
    } 

Второй подход:

  1. создать класс, расширяющий TimerTask (доступный в java.util пакете). TimerTask - абстрактный класс.
  2. Напишите свой код в общедоступном методе void run(), который вы хотите выполнять периодически.

Пример кода:

import java.util.TimerTask; 

    // Create a class extends with TimerTask 
    public class ScheduledTask extends TimerTask { 

     // Add your task here 
     @Override 
     public void run() { 
      //show pictures code 
     } 
    } 

import java.util.Timer; 

public class SchedulerMain { 
    public static void main(String args[]) throws InterruptedException { 

     Timer time = new Timer(); // Instantiate Timer Object 
     ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class 
     time.schedule(st, 0, 5000); // Create Repetitively task for every 5 secs 


    } 
} 
Смежные вопросы