Tôi đang cố gắng để hiểu mã here, đặc biệt là tầng lớp vô danhRunnable mới() nhưng không có chuỗi mới?
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));
}
};
Bài báo nói
Các Handler chạy mã cập nhật như một phần của chủ đề chính của bạn, tránh những phí của chủ đề thứ hai ..
Không nên tạo lớp Runnable mới tạo chuỗi mới thứ hai? Mục đích của lớp Runnable ở đây ngoài việc có thể vượt qua một lớp Runnable để postAtTime là gì?
Cảm ơn
No. Runnables không phải là 'Chủ đề'. http://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html –