Проверьте, работает ли Хронометр

хронометр в android Как проверить, работает ли хронометр или останавливается? если начать, то я хочу остановить его, а если не работает, то запустить хронометр.

4 ответов


вы можете проверить это, используя логическую переменную.при запуске Хронометра установить булевой переменной true и когда он остановит вас набор булевой переменной значение false.

boolean isChronometerRunning = false;
if (true)  // condition on which you check whether it's start or stop
{
    chronometer.start();
    isChronometerRunning  = true;
}
else
{
  chronometer.stop();
  isChronometerRunning  = false;
}

вы можете extend Chronomter, например:

import android.content.Context;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.widget.Chronometer;

public class MyChronometer extends Chronometer {

    private boolean isRunning = false;

    public MyChronometer(Context context) {
        super(context);
    }

    public MyChronometer(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyChronometer(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void start() {
        super.start();
        isRunning = true;
    }

    @Override
    public void stop() {
        super.stop();
        isRunning = false;
    }

    public boolean isRunning() {
        return isRunning;
    }

}

а потом просто позвоните isRunning().


Это и странно, что он не выставляет это имущество. Я действительно не вижу идеального способа проверить это, кроме отслеживания самостоятельно.

вы могли бы просто взять исходный код для этого класса реализуйте его в своем проекте самостоятельно и добавьте такой метод:

public boolean getStarted() {
    return mStarted;
}

private boolean isChronometerRunning = false;

private Chronometer chronometer;

chronometer = (Chronometer) findViewById(R.id.chronometer);

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

isChronometerRunning = true;

теперь, когда вы хотите остановить хронометр, используйте приведенный ниже код для проверки Хронометра.

    if (isChronometerRunning){
        chronometer_call.stop();
    }