知识大全 TimerTask与Timer类的应用

Posted 时间

篇首语:知识是心灵的活动。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 TimerTask与Timer类的应用相关的知识,希望对你有一定的参考价值。

TimerTask与Timer类的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Timer类就像一个定时器 用于设置特定的时间或周期 来配合线程动作的执行 但是只调用Timer无法执行线程动作 必须配合另一个类TimerTask的方法才能使用 从示例 中可以发现Timer类与Thread类很相近

  public Timer ()

  创建一个新的timer对象

  Timer属于计时器类 Time建立后 需要调用schedule()方法来执行计划任务 计划调度的方法有许多运用方式

  public void schedule (TimerTask task long delay)

  执行任务前先等待一段时间 task代表要执行的任务 delay代表需要等待的时间 单位为毫秒( 毫秒为 秒)

  public void schedule (TimerTask task

  Date time)

  在指定的系统时间time之后开始执行任务

  public void schedule (TimerTask task

  long delay

  long period)

  延迟一段时间后开始执行任务 任务按照设定的周期执行 传入的参数 delay为延迟时间 period为周期时间 单位均为毫秒

  public void schedule(TimerTask task

  Date firstTime

  long period)

  在指定的时间后开始执行任务 任务按照设定的周期执行 传入的参数 firstTime为指定等待时间 period为周期时间 单位都是毫秒

  public void scheduleAtFixedRate (TimerTask task

  long delay

  long period)

  执行任务内容后 等待delay时间 再按照period周期时间继续执行任务 单位都是毫秒

  public void scheduleAtFixedRate

  (TimerTask task

  Date firstTime

  long period)

  先等待一段时间firstTime 再执行计划任务 然后按照period周期时间继续执行任务 单位都是毫秒

  public void cancel()

  停止timer计时

  有了Timer的各项调用方法 还不能直接执行计划任务 需要跟TimerTask类共同运用才能使计划任务开始运行 TimerTask所包含的相关方法如下

  public void TimerTask ()

  创建一个新的TimerTask对象

  public abstract void run()

  运行计划任务的工作内容

  public void cancel()

  中止TimerTask类的执行流程 不再执行所调度的工作内容

  public void scheduleExcutionTime()

  实际运行计划任务所用的时间

  示例

  /×

  Timer和TimerTask类运行计划任务

  ×/

  import javax microedition midlet ×;

  import javax microedition lcdui ×;

  import java util ×;

  public class threadDemo extends MIDlet

  

  Display display;

  canvasThread canvasthread;

  public threadDemo ()

  

  canvasthread=new canvasThread();

  display=Display getDisplay(this);

  

  public void startApp()

  

  display setCurrent(canvasthread);

  

  public void pauseApp()

  public void destroyApp(boolean unconditional)

  public class canvasThread extends Canvas

  

  int     gameaction= ;

  int     view= ;

  boolean again;

  //声明一个Tim er类

  Timer   timers;

  Image[] cloudImage;

  Image[] sunImage;

  public canvasThread()

  

  timers=new Timer();

  try

  cloudImage = new Image[]

  Image createImage( /cloud png )

  Image createImage( /cloud png )

  Image createImage( /cloud png )

  Image createImage( /cloud png )

  ;

  sunImage = new Image[]

  Image createImage( /sun png )

  Image createImage( /sun png )

  Image createImage( /sun png )

  Image createImage( /sun png )

  ;

  catch(Exception ex)

  

  public void keyPressed(int keyCode)

  

  gameaction=getGameAction(keyCode);

  switch(gameaction)

  

  case FIRE:

  //运行计划任务

  actionView();

  break;

  

  

  public void paint(Graphics g)

  

  g setColor( xFFFFFF);

  g fillRect( getWidth() getHeight());

  g setColor( );

  g drawString( Timer线程动画应用 getWidth()/

  Graphics HCENTER | Graphics TOP);

  g drawImage(sunImage[view] getWidth()/ Graphics HCENTER |

  Graphics TOP);

  g drawImage(cloudImage[view] getWidth()/ Graphics HCENTER

  | Graphics TOP);

  

  private void actionView()

  

  /×

  安排一个计划任务

  运行任务内容 goCanvas()

  delay时间 毫秒

  period周期 毫秒

  ×/

  timers schedule(new goCanvas() );

  

  //计划任务程序内容

  class goCanvas extends TimerTask

  

  public void run()

  

  repaint();

  if(again)

  view ;

  else

  view++;

  if(again && view== )

  again=false;

  if(!again && view== )

  again=true;

  

  

  

  

cha138/Article/program/Java/hx/201311/26390

相关参考