<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • TimerTask與Timer類的應用

    時間:2024-09-04 17:03:47 SUN認證 我要投稿
    • 相關推薦

    關于TimerTask與Timer類的應用

      Timer類就像一個定時器,用于設置特定的時間或周期,來配合線程動作的執行,但是只調用Timer無法執行線程動作,必須配合另一個類TimerTask的方法才能使用。從示例6-13中可以發現Timer類與Thread類很相近。

      public Timer ()

      創建一個新的timer對象。

      Timer屬于計時器類,Time建立后,需要調用schedule()方法來執行計劃任務,計劃調度的方法有許多運用方式:

      public void schedule (TimerTask task, long delay)

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

      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()

      實際運行計劃任務所用的時間。

      示例6-13

      /×

      Timer和TimerTask類運行計劃任務

      ×/

      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;

      //聲明一個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:

      //運行計劃任務

      actionView();

      break;

      }

      }

      public void paint(Graphics g)

      {

      g.setColor(0xFFFFFF);

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

      g.setColor(0);

      g.drawString("Timer線程動畫應用", 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()

      {

      /×

      安排一個計劃任務

      運行任務內容:goCanvas()

      delay時間:500毫秒

      period周期:500毫秒

      ×/

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

      }

      //計劃任務程序內容

      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;

      }

      }

      }

      }

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

    【TimerTask與Timer類的應用】相關文章:

    小學雞兔同籠類應用題03-31

    英語四級應用類作文寫作技巧03-30

    2016小升初數學常考的4類應用題01-23

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

    2017中職類計算機應用基礎試題「附答案」03-06

    速錄介紹及應用03-05

    EDA技術與應用03-31

    草坪的景觀應用03-13

    計算機應用技術的應用與發展03-27

    主站蜘蛛池模板: 久久精品国产亚洲AV香蕉| 国产精品久久久久久久| 精品久久无码中文字幕| 国产精品内射视频免费| 国产精品高清一区二区三区 | 亚洲国产精品一区二区第一页| 亚洲国语精品自产拍在线观看| 亚洲av永久无码精品国产精品| 一区二区三区精品| 99re这里只有精品热久久| 亚洲精品国产精品乱码在线观看| 精品无码一级毛片免费视频观看| 亚洲精品高清视频| 国产a∨精品一区二区三区不卡| 亚洲精品无码永久中文字幕 | 日韩精品成人一区二区三区| 久久精品国产第一区二区三区| 亚洲AⅤ永久无码精品AA| 国产亚洲精品a在线观看| 国产福利电影一区二区三区,欧美国产成人精品一 | 欧美激情精品久久久久久久| 91精品国产自产在线观看| 日韩精品免费在线视频| 欧美精品华人在线| 欧美日韩精品在线| 久久精品国产69国产精品亚洲| 国产2021精品视频免费播放| 99精品人妻无码专区在线视频区| 精品人妻中文av一区二区三区| 少妇人妻偷人精品无码视频新浪| 中文精品无码中文字幕无码专区| 亚洲精品视频久久久| 亚洲?V无码乱码国产精品| 亚洲国产小视频精品久久久三级| 日韩精品视频在线观看免费| 日韩精品无码久久一区二区三| 青娱乐国产精品视频| 亚洲精品无码你懂的网站| 中文字幕久久精品无码| 久久久一本精品99久久精品66| 精品不卡一区二区|