我试图理解代码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