天文台计时器不会停止(Chronometer timer does not stop)

2019-10-29 03:08发布

我有一个片段的天文钟定时器,我希望它重新设置为00:00,当我按下一个按钮停止。

这里是该片段的代码:

public class FirstFragment extends Fragment {

    Chronometer chronometer;

    @Overried
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        final View view = inflater.inflate(R.layout.fragment_memo, container, false);
        Button testButton = view.findViewById(R.id.btn_test);
        chronometer = view.findViewById(R.id.stop_watch);
        chronometer.setFormat("%s");

        testButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                stopStopWatch();

                ((BottomNavigationView) getActivity().findViewById(R.id.bottom_navigation))
                    .setSelectedItemId(R.id.nav_second_fragment);

            }
        });

    }
}

我做了一个叫StopWatchHelper(感谢@Mushahid)班

public class StopWatchHelper {

    @Nullable
    private static Long startTime;

    @Nullable
    public Long getStartTime() {

        return startTime;

    }

    public void setStartTime(final long startTime) {

        this.startTime = startTime;

    }

}

这里是我的开始和结束的时计的方法:

private void startStopWatch() {

    StopWatchHelper stopWatchHelper = new StopWatchHelper();

    if (stopWatchHelper.getStartTime() == null) {

        long startTime = SystemClock.elapsedRealtime();

        stopWatchHelper.setStartTime(startTime);
        chronometer.setBase(startTime);

    } else {

        chronometer.setBase(stopWatchHelper.getStartTime());

    }

    chronometer.start();

}

private void stopStopWatch() {

    StopWatchHelper stopWatchHelper = new StopWatchHelper();
    long startTime = SystemClock.elapsedRealtime();
    stopWatchHelper.setStartTime(startTime);
    chronometer.setBase(startTime);
    chronometer.stop();

}

所以问题是计时器即使我叫stopStopWatch()方法永远不会停止。

它肯定有chronometer.stop(); 在它的内部,但它为什么会发生?

计时器重置为00:00正常,但它保持计数停止方法被调用后。

是不是因为它是一个片段里面?

谁能帮我这个? 谢谢。

文章来源: Chronometer timer does not stop