Как исправить ошибку EOF при использовании функции chronometer.setBase () - PullRequest
0 голосов
/ 12 июня 2019

Я создаю простое приложение с интервальным таймером, и у меня проблема с сбросом хронометра.Я хочу использовать хронометр для подсчета до определенного времени, и после того, как он захочет сбросить его, изменить состояние на другое и посчитать другой интервал на основе некоторых значений, предоставленных пользователем.Но когда я сбрасываю хронометр с помощью функции setBase, мое приложение зависает.

Когда вызывается chronometer.setBase(SystemClock.elapsedRealtime()), я получаю EOF Ошибка.Это показывает, что ошибка вызвана функцией dispatchChronometerTick() в классе хронометров.Я не могу понять, что я делаю неправильно

сильный текст

    chronometer.setOnChronometerTickListener(new    Chronometer.OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer chronometer) {

        String time[] = chronometer.getText().toString().split(":");
        int seconds = Integer.parseInt(time[1]);
        int minutes = Integer.parseInt(time[0]);
        if(stan == 0){

            if( seconds >= time_before_start ){

                stopChronometer();
                restartChronometer();
                stan = 1;                        
                stateView.setText(getText(R.string.activity_text));
                startChronometer();
            }         
    }   


 private void restartChronometer() {

    if (!running) {
        chronometer.stop();
        chronometer.setBase(SystemClock.elapsedRealtime());
        pauseOffset = 0;
    }

/ *

void dispatchChronometerTick() {
    if (mOnChronometerTickListener != null) {
        mOnChronometerTickListener.onChronometerTick(this);
    }
}

* /

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

...