我试图在达到10秒时停止我的Android计时器,但似乎无法正常工作。
我的代码如下,任何人都可以向我指出正确的方向。
谢谢。

if(chronorun == false){
         chronometer.setBase(SystemClock.elapsedRealtime());
         chronometer.start();
         chronorun = true;
         Vibrator vib = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
        vib.vibrate(100);
        elapsedTime = SystemClock.elapsedRealtime();
        if(elapsedTime == 10)
        {chronometer.stop();}
        }

最佳答案

您可以创建一个Runnable来停止Chronometer,并使用postDelayed()方法使其在10秒内运行:

Runnable stopClock = new Runnable()
{
    @Override
    public void run()
    {
        chronometer.stop();
        Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        vib.vibrate(100);
    }
};

chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.start();
chronometer.postDelayed(stopClock, 1000 * 10);


注意:postDelayed()中的第二个参数是以毫秒为单位的延迟。

10-04 20:38