当我将postDelayed(this,1000);
置于if seconds++;
下的if语句中时,为什么计时器停止工作?
布局中有3个按钮(开始,停止,重置)。按开始 - >运行=真,按停止 - >运行=停止,按复位 - >运行=假秒= 0
private void runTimer() {
final TextView timeView = (TextView) findViewById(R.id.time_view);
final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
int hours = seconds / 3600;
int minutes = (seconds % 3600) / 60;
int secs = seconds % 60;
String time = String.format("%d:%2d:%02d", hours, minutes, secs);
timeView.setText(time);
if (running) {
seconds++;
//handler.postDelayed(this, 1000);
//doesnt work if i put it here
}
handler.postDelayed(this, 1000);
}
});
}
答案 0 :(得分:0)
当您致电runTimer()
时,变量running
设置为false。您很可能必须将runTimer()
的调用移至onClickStart()
方法(在设置为true后)。
声明布尔值时,默认值为false。