我試圖理解代碼here,特別是匿名類new Runnable()但沒有新的線程?
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
final long start = mStartTime;
long millis = SystemClock.uptimeMillis() - start;
int seconds = (int) (millis/1000);
int minutes = seconds/60;
seconds = seconds % 60;
if (seconds < 10) {
mTimeLabel.setText("" + minutes + ":0" + seconds);
} else {
mTimeLabel.setText("" + minutes + ":" + seconds);
}
mHandler.postAtTime(this,
start + (((minutes * 60) + seconds + 1) * 1000));
}
};
文章說
的處理器運行更新的代碼爲你的主線程的一部分,避免了開銷第二個線程..
不應該創建一個新的Runnable類創建一個新的第二個線程?除了能夠將Runnable類傳遞給postAtTime之外,Runnable類的目的是什麼?
感謝
號的Runnable不是'Thread's。 http://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html – 2012-01-27 06:40:02