Условие остановки Android-хронометра

Я пытаюсь остановить свой Android-хронометр, когда он достигает 10 секунд, но я не могу заставить его работать.
Мой код, как показано ниже, для всех, чтобы указать мне в правильном направлении.
Спасибо.

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();}
        }

2 ответа

Вы могли бы создать 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);

NB: второй параметр в postDelayed() задержка в миллисекундах.

Используйте Chronometer.OnChronometerTickListener() вот код

final Chronometer myChronometer = (Chronometer) getActivity().findViewById(
        R.id.chronometer1);

myChronometer.start();
myChronometer
        .setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {

            @Override
            public void onChronometerTick(Chronometer chronometer) {
                if( chronometer.getText().toString().equalsIgnoreCase("00:10"))
                    Toast.makeText(context,
                        "time reached", Toast.LENGTH_SHORT).show();
                     //HERE YOU CAN DO YOUR CODE
            }
        });
Другие вопросы по тегам