Условие остановки 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
}
});