Timer和TimerTask的使用
Timer類是用來執行任務的類,它接受一個TimerTask做參數
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
// Toast.makeText(GisActivity.this, "執行run方法", Toast.LENGTH_SHORT).show();
System.out.println("執行run方法");
}
};
Timer timer = new Timer(true);
timer.schedule(timerTask, 2000, 3000); // 2秒後執行,每隔3秒執行一次
while循環用來判斷停止timer定時器的條件
while (true) {
try {
int read = System.in.read();
if (read == 's') {
timer.cancel();
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}
scheduleAtFixedRate()方法在API1.6.0中是這樣定義的:
安排指定的任務在指定的時間開始進行重複的固定速率執行。以近似固定的時間間隔(由指定的週期分隔)進行後續執行。
近似固定的時間間隔的意思是說:在固定速率執行中,相對於已安排的初始執行時間來安排每次執行。如果由於任何原因(如垃圾回收或其他後臺活動)而延遲了某次執行,則將快速連續地出現兩次或更多次執行,從而使後續執行能夠趕上來。
Timer類的常用其他方法:
cancel()
終止此計時器,丟棄所有當前已安排的任務。
purge()
從此計時器的任務隊列中移除所有已取消的任務。
schedule(TimerTask task, Date time)
安排在指定的時間執行指定的任務。
TimerTask類的常用其他方法:
cancel()
取消此計時器任務。
run()
此計時器任務要執行的操作。
scheduledExecutionTime()
返回此任務最近實際 執行的已安排 執行時間。