首页 / 软件开发 / JAVA / J2ME:定时器(TimerTask)使用及初探
J2ME:定时器(TimerTask)使用及初探2011-02-25最近完成个J2ME游戏,一直以来总想写点东西给大家~因为以前总是在索取,现在把J2ME的入门知识-定时器的相关知识以及我的一点体会-付出给大家,内容不多只是它的使用,希望对入门的J2ME开发者有所帮助。首先,说下定时器的基本使用,以下内容摘自NOKIA 论坛里的一篇文章:《为60系列平台设计Java应用》--定时器各种定时器让各种应用能方便地规划任务,而不必对线程进行调配。使用线程通常需要更为复杂的设计,并需要更多的系统资源,对各种小设备而言,比较奢侈。创建一个定时器的范例:public class MyTask extends TimerTask
{
private int iCount;
public MyTask(int aStart)
{
super();
iCount = aStart;
}
public void run()
{
iCounter--;
System.out.println(“Counter is now ” + iCounter);
if (iCounter == 0)
cancel();
}
}构建一个定时器并向其中添加MyTask:MyTask myTask = new Mytask(50);
Timer myTimer = Timer();
MyTimer.schedule(myTask, 1000, 20000);在这个范例中,每20秒就会调用一次MyTask的run()方法。并不保证定时器任务一定按时执行。各个定时器任务依次发生。如果其中一个任务需时很长,下一个任务只能在当前任务完成之后再执行。对于循环执行的任务,最好保证run()方法能很快完成。一个以上地定时器也是可能的,这样就可以将任务分配到几个定时器上。然而,使用多定时器要多加小心,因为每个定时器只运行自己的线程,同步可能是需要的。上面就是定时器的基本用法,对于一些简单的定时器操作这样做就可以了,直接把要执行的代码放入Run中。对于逻辑结构复杂点的,需要多次执行Run方法的时候就要另想办法来做了。下面是我使用定时器的一个框架,实际上就是个面向对象的应用,比较简单也好理解,希望对大家有个帮助,也希望有不同见解的朋友共同交流。同样要有个类来继承TimerTask:import java.util.TimerTask;
public class GAMETask extends TimerTask {
private GameObject m_Object;
public GAMETask(GameObject object) {
m_Object = object;
}
public void run() {
m_Object.gameTask();
}
}然后再定义一个GameObject接口:public interface GameObject {
public abstract void gameTask();
}