如何在活动开始时启动倒数计时器而不执行任何操作?

时间:2015-03-19 06:19:41

标签: android timer

我已经为倒数计时器编写了一个程序,但倒计时只在点击按钮时启动,但是我想让它在没有按钮点击的情况下启动,任何人都可以建议我如何在没有点击按钮的情况下进行倒计时吗?

这是倒数计时器的代码

public class MainActivity extends ActionBarActivity {

CountDownTimer countDownTimer;
boolean timehasstarted = false;
Button btnStart;
TextView timer;
long startTime = 30 * 1000;
long interval = 1 * 1000;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnStart = (Button) findViewById(R.id.button1);
    timer = (TextView) findViewById(R.id.timer);
    timer.setText(timer.getText() + String.valueOf(startTime / 1000));
    btnStart.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (!timehasstarted) {
                countDownTimer.start();
                timehasstarted = true;
                timer.setText("Stop");
            } else {
                countDownTimer.cancel();
                timehasstarted = false;
                timer.setText("Restart");
            }
        }
    });
    countDownTimer = new CountDownTimer(startTime, interval) {

        @Override
        public void onTick(long millisUntilFinished) {
            timer.setText("" + millisUntilFinished / 1000);
        }

        @Override
        public void onFinish() {
            timer.setText("Time's Up!");
        }
    };
}

2 个答案:

答案 0 :(得分:0)

如果您想在2秒后的特定时间之后打开倒计时,则可以使用TimerTask进行此操作:

             Timer t = new Timer();
            t.schedule(new TimerTask() {

                @Override
                public void run() {



                }
            }, 2000);

答案 1 :(得分:0)

将您的计时器代码移至活动的onCreate()方法,而不是onClick()方法

这将在活动开始时启动计时器。

此外,您可以在活动停止或当前未激活时使用timer.cancel()取消计时器