为什么Postdelayed不在if语句中工作

时间:2017-11-22 22:03:37

标签: java android postdelayed

当我将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);
        }
    });

}

1 个答案:

答案 0 :(得分:0)

当您致电runTimer()时,变量running设置为false。您很可能必须将runTimer()的调用移至onClickStart()方法(在设置为true后)。
声明布尔值时,默认值为false。