關於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 et.×;
import i.×;
import .×;
public class threadDemo3 extends MIDlet
{
Display display;
canvasThread canvasthread;
public threadDemo3()
{
canvasthread=new canvasThread();
display=isplay(this);
}
public void startApp()
{
urrent(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)
{
olor(0xFFFFFF);
Rect(0, 0, getWidth(), getHeight());
olor(0);
String("Timer線程動畫應用", getWidth()/2, 20,
TER | );
Image(sunImage[view], getWidth()/2, 50, TER |
);
Image(cloudImage[view], getWidth()/2, 50, TER
| );
}
private void actionView()
{
/×
安排一個計劃任務
運行任務內容:goCanvas()
delay時間:500毫秒
period週期:500毫秒
×/
dule(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控制暫停時間。
-
Sun java認證考試答案
SUN認證是給網絡設計界建立的一套認證標準,Sun公司推出了Java以及Solaris技術認證方案。小編收集一些Sunjava認證考試真題答案,希望髮夾認真做題!1.Whatgetsprintedwhenthefollowingprogramiscompiledandrun?classTest{publicstaticvoidmain(Stringargs[]){inti;...
-
Sun國際認證 中國註冊 在京正式啟動
北京時間3月3日,Sun公司中國培訓部在北京金域萬豪酒店隆重舉辦Sun國際認證中國註冊啟動儀式,這標誌着Sun國際認證獲得中國官方權威認可,並逐步納入國家職業技能認證體系的開始。更為有幸的是,中國勞動和社會保障部職業技能鑑定中心鑑定總監李京申也應邀出席了此次...
-
Solaris系統管理認證考試注意事項
對Solaris/SunOS系統管理員,Sun推出CertifiedSolarisAdministrator(CSA)。CSA分別為兩個等級(PartⅠ和PartⅡ),測試對Solaris系統管理的瞭解程度。下面是小編整理的關於Solaris系統管理認證考試注意事項,歡迎大家參考!自從上個世紀的90年代早期,sun的solaris就成為...
-
SUN的JAVA程序員和開發員認證及考試
java程序員的認證SunCertifiedJAVAProgrammer(SCJP)課程:SL-275JAVA語言編程本課程使學員掌握如何使用標準JAVADevelopmentKit,V1.1(JDK)開發應用程序和applets。在本課程中您將學會JAVA語言的語法。如何使用JAVA來創建圖形用户接口(GUI),事件處理機制,例外處理...
相關文章
- Remarks by President Bush at CEO Summit
- 高中英語作文:Smart tech makes life simpler
- At Climate Summit, Hope for Emissions Deal美文欣賞
- MS SQL Server Management Studio Express安裝圖文具體步驟
- 如何在Javascript中為String對象添加trim,ltrim,rtrim方法
- The First Time to Make Dumplings英語作文及譯文
- My favourite supermarket英語作文
- 關於Timer和TimerTask
- 《the most interesting stories》湘少版六下Unit7的相關知識及
- 六年級英語上冊Unit2 New York is in the east of America説課稿