用计时器每X次做一些事情

时间:2013-09-06 10:53:30

标签: android time timer

我很不高兴 当我点击一个按钮

时,我有一个计时器开始计数器
    crono = (Chronometer) findViewById(R.id.crono);
begin= (Button) findViewById(R.id.begin);
begin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {

        crono.setBase(SystemClock.elapsedRealtime());
        crono.start();

every minute do something ////////

    }
});

我应该怎样做才能每分钟做一些事情? 例如1:00 --->做点什么2点--->做点什么

任何建议都会被贬低。 :)

1 个答案:

答案 0 :(得分:1)

尝试使用OnChronometerTickListener

@Override
public void onClick(View arg0) {
    crono.setBase(SystemClock.elapsedRealtime());
    crono.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        private long mTicks = 0;
        public void onChronometerTick(Chronometer chronometer) {
            if ((mTicks / 60) == 0) { // adapt period here
                // do something
            }
            mTicks++;
        }
    });
    crono.start();
}

我不确定,Cronometer的频率是多少,我的猜测是每一秒。如果是其他东西,你可能需要调整周期。

如果不是一个固定的时间段,你需要检查时间,如:

@Override
public void onClick(View arg0) {
    crono.setBase(SystemClock.elapsedRealtime());
    crono.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        private long mLastAction = 0;
        public void onChronometerTick(Chronometer chronometer) {
            now = System.getCurrentMillies();
            if (now - mLastAction > 60 * 1000) {
                // do something
                mLastAction = now;
            }
        }
    });
    crono.start();
}

也许,无论如何,第二个更好。