Таймер в Java ME

от
Java    java me

Иногда при создании мобильных приложений приходится выполнять какие-либо действия через заданный промежуток времени. Например, в какой-нибудь игре нужно выпускать на поле новых монстров каждые 5 секунд. В таком случае удобно использовать таймер, который находится в пакете java.util. Использование таймера крайне простое.

Первым делом необходимо создать экземпляр класса Timer:
  1. Timer timer = new Timer();
Далее создаем объект TimerTask и переопределяем его метод run(). Например так:
  1. TimerTask tTask = new TimerTask() {
  2.     public void run() {
  3.         display.vibrate(100); // вибрировать 100 миллисекунд
  4.     }
  5. };
Кстати, метод vibrate() объекта типа Display заставляет телефон вибрировать. В параметр нужно написать длительность вибрации в миллисекундах.

После того как созданы объекты таймер и задание, можно их запустить. Для этого у таймера есть методы:
1.
  1. schedule(TimerTask task, Date time)
  2. schedule(TimerTask task, long delay)
Помещают заданную задачу на исполнение в заданное время или с заданной отсрочкой. Если указанное время уже прошло, задача ставится на немедленное исполнение.

2.
  1. schedule(TimerTask task, Date firstTime, long period)
  2. schedule(TimerTask task, long delay, long period)
Ставят задачу на периодическое выполнение с указанного времени с заданным интервалом. Каждое выполнение будет отсрочено на заданное количество миллисекунд от реального времени предыдущего выполнения. Таким образом, более точно выдерживаются относительные интервалы, а не абсолютное время выполнения.

3.
  1. scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
  2. scheduleAtFixedRate(TimerTask task, long delay, long period)
Аналогично предыдущей группе методов, но выполнение будет происходить с приоритетом абсолютной привязки по времени(и, как следствие, общего времени для фиксированного числа запусков), независимо от фактического времени предыдущего выполнения, возможно, с нарушением длительности интервалов.
Параметры delay и period указываются в миллисекундах.

Выполнение задания можно отменить методом cancel().
Скачать пример использования таймера

Оригинал: http://truecoder.ru/
  • +2
  • views 6468