亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

TimerTask與Timer類的應(yīng)用

時(shí)間:2024-09-04 17:03:47 SUN認(rèn)證 我要投稿
  • 相關(guān)推薦

關(guān)于TimerTask與Timer類的應(yīng)用

  Timer類就像一個(gè)定時(shí)器,用于設(shè)置特定的時(shí)間或周期,來配合線程動(dòng)作的執(zhí)行,但是只調(diào)用Timer無法執(zhí)行線程動(dòng)作,必須配合另一個(gè)類TimerTask的方法才能使用。從示例6-13中可以發(fā)現(xiàn)Timer類與Thread類很相近。

  public Timer ()

  創(chuàng)建一個(gè)新的timer對象。

  Timer屬于計(jì)時(shí)器類,Time建立后,需要調(diào)用schedule()方法來執(zhí)行計(jì)劃任務(wù),計(jì)劃調(diào)度的方法有許多運(yùn)用方式:

  public void schedule (TimerTask task, long delay)

  執(zhí)行任務(wù)前先等待一段時(shí)間。task代表要執(zhí)行的任務(wù),delay代表需要等待的時(shí)間,單位為毫秒(1000毫秒為1秒)。

  public void schedule (TimerTask task,

  Date time)

  在指定的系統(tǒng)時(shí)間time之后開始執(zhí)行任務(wù)。

  public void schedule (TimerTask task,

  long delay,

  long period)

  延遲一段時(shí)間后開始執(zhí)行任務(wù),任務(wù)按照設(shè)定的周期執(zhí)行。傳入的參數(shù):delay為延遲時(shí)間,period為周期時(shí)間,單位均為毫秒。

  public void schedule(TimerTask task,

  Date firstTime,

  long period)

  在指定的時(shí)間后開始執(zhí)行任務(wù),任務(wù)按照設(shè)定的周期執(zhí)行。傳入的參數(shù):firstTime為指定等待時(shí)間,period為周期時(shí)間,單位都是毫秒。

  public void scheduleAtFixedRate (TimerTask task,

  long delay,

  long period)

  執(zhí)行任務(wù)內(nèi)容后,等待delay時(shí)間,再按照period周期時(shí)間繼續(xù)執(zhí)行任務(wù),單位都是毫秒。

  public void scheduleAtFixedRate

  (TimerTask task,

  Date firstTime,

  long period)

  先等待一段時(shí)間firstTime,再執(zhí)行計(jì)劃任務(wù),然后按照period周期時(shí)間繼續(xù)執(zhí)行任務(wù),單位都是毫秒。

  public void cancel()

  停止timer計(jì)時(shí)。

  有了Timer的各項(xiàng)調(diào)用方法,還不能直接執(zhí)行計(jì)劃任務(wù),需要跟TimerTask類共同運(yùn)用才能使計(jì)劃任務(wù)開始運(yùn)行。TimerTask所包含的相關(guān)方法如下:

  public void TimerTask ()

  創(chuàng)建一個(gè)新的TimerTask對象。

  public abstract void run()

  運(yùn)行計(jì)劃任務(wù)的工作內(nèi)容。

  public void cancel()

  中止TimerTask類的執(zhí)行流程,不再執(zhí)行所調(diào)度的工作內(nèi)容。

  public void scheduleExcutionTime()

  實(shí)際運(yùn)行計(jì)劃任務(wù)所用的時(shí)間。

  示例6-13

  /×

  Timer和TimerTask類運(yùn)行計(jì)劃任務(wù)

  ×/

  import javax.microedition.midlet.×;

  import javax.microedition.lcdui.×;

  import java.util.×;

  public class threadDemo3 extends MIDlet

  {

  Display display;

  canvasThread canvasthread;

  public threadDemo3()

  {

  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=0;

  int view=0;

  boolean again;

  //聲明一個(gè)Tim er類

  Timer timers;

  Image[] cloudImage;

  Image[] sunImage;

  public canvasThread()

  {

  timers=new Timer();

  try{

  cloudImage = new Image[]{

  Image.createImage("/cloud-1.png"),

  Image.createImage("/cloud-2.png"),

  Image.createImage("/cloud-3.png"),

  Image.createImage("/cloud-4.png")

  };

  sunImage = new Image[]{

  Image.createImage("/sun-1.png"),

  Image.createImage("/sun-2.png"),

  Image.createImage("/sun-3.png"),

  Image.createImage("/sun-4.png")

  };

  }catch(Exception ex){}

  }

  public void keyPressed(int keyCode)

  {

  gameaction=getGameAction(keyCode);

  switch(gameaction)

  {

  case FIRE:

  //運(yùn)行計(jì)劃任務(wù)

  actionView();

  break;

  }

  }

  public void paint(Graphics g)

  {

  g.setColor(0xFFFFFF);

  g.fillRect(0, 0, getWidth(), getHeight());

  g.setColor(0);

  g.drawString("Timer線程動(dòng)畫應(yīng)用", getWidth()/2, 20,

  Graphics.HCENTER | Graphics.TOP);

  g.drawImage(sunImage[view], getWidth()/2, 50, Graphics.HCENTER |

  Graphics.TOP);

  g.drawImage(cloudImage[view], getWidth()/2, 50, Graphics.HCENTER

  | Graphics.TOP);

  }

  private void actionView()

  {

  /×

  安排一個(gè)計(jì)劃任務(wù)

  運(yùn)行任務(wù)內(nèi)容:goCanvas()

  delay時(shí)間:500毫秒

  period周期:500毫秒

  ×/

  timers.schedule(new goCanvas(), 500, 500);

  }

  //計(jì)劃任務(wù)程序內(nèi)容

  class goCanvas extends TimerTask

  {

  public void run()

  {

  repaint();

  if(again)

  view--;

  else

  view++;

  if(again && view==0)

  again=false;

  if(!again && view==3)

  again=true;

  }

  }

  }

  }

  【說明】本線程使用計(jì)劃任務(wù)進(jìn)行,所達(dá)到的效果跟使用線程的方式是相同的。只是在計(jì)劃的內(nèi)容上有所不同,例如不需要sleep()暫停時(shí)間,而是由schedule控制暫停時(shí)間。

【TimerTask與Timer類的應(yīng)用】相關(guān)文章:

小學(xué)雞兔同籠類應(yīng)用題03-31

英語四級應(yīng)用類作文寫作技巧03-30

2016小升初數(shù)學(xué)常考的4類應(yīng)用題01-23

2016考研英語:攻克高分作文之告示類應(yīng)用文03-19

2017中職類計(jì)算機(jī)應(yīng)用基礎(chǔ)試題「附答案」03-06

速錄介紹及應(yīng)用03-05

EDA技術(shù)與應(yīng)用03-31

草坪的景觀應(yīng)用03-13

計(jì)算機(jī)應(yīng)用技術(shù)的應(yīng)用與發(fā)展03-27

主站蜘蛛池模板: 亚洲精品456在线播放| 国产精品白浆无码流出| 无套中出丰满人妻无码| 国产乱论视频| 亚洲午夜久久久久中文字幕| 91精品人妻一区二区| 免费国产高清精品一区在线| 日本一卡二卡不卡视频查询 | 变态sm天堂无码专区| 国产h视频在线观看| 红杏亚洲影院一区二区三区| 综合久久国产九一剧情麻豆| 无码不卡中文字幕av| 四虎精品| aaa午夜级特黄日本大片| 国产成人一区二区三区| 国产亚洲欧美精品久久久| 欧美亚洲国产片在线播放| 久久99久久99小草精品免视看| 精品久久久久久无码免费| 日韩国产亚洲一区二区三区 | 97se亚洲综合| 亚洲AⅤ永久无码精品毛片| 亚洲精品欧美综合四区| 2018高清国产一区二区三区| 国产精品人妻在线观看| 久久精品国产曰本波多野结衣| 色偷偷色噜噜狠狠成人免费视频 | 成人av鲁丝片一区二区免费 | 国产乱子伦精品无码专区| 天天澡天天添天天摸97影院| 会宁县| 欧洲成人免费视频| 成人无码视频| 真实国产乱啪福利露脸| 欧美中文一区| 国产做爰全免费的视频| 日本成熟少妇激情视频免费看| 午夜爽爽视频| 国产精品亚洲第一区焦香味| 广东省|