1

我的应用程序中有 Chronometer,它计算游戏经过的时间。我在退出时有保存功能。我需要从计时器中节省时间,并在加载游戏后显示相同的时间。

在保存功能中,我保存 chronometer.getBase() 值。在加载函数中,我在计时器上得到该值和 setBase()。但这不是正确的时间,似乎计时器在应用程序关闭时一直在滴答作响。

这该怎么做?看来 getBase 不适合我的目的。

4

1 回答 1

0

我找到了解决方案。

在保存函数中,我通过此方法存储值:

private long calculateElapsedTime(Chronometer mChronometer) {

        long stoppedMilliseconds = 0;

        String chronoText = mChronometer.getText().toString();
        String array[] = chronoText.split(":");
        if (array.length == 2) {
            stoppedMilliseconds = Integer.parseInt(array[0]) * 60 * 1000
                    + Integer.parseInt(array[1]) * 1000;
        } else if (array.length == 3) {
            stoppedMilliseconds = Integer.parseInt(array[0]) * 60 * 60 * 1000
                    + Integer.parseInt(array[1]) * 60 * 1000
                    + Integer.parseInt(array[2]) * 1000;
        }

        return stoppedMilliseconds;

    }

在加载功能中,我像这样刷新计时器:

 ((GameActivity) activity).getcGameTime().setBase(
                SystemClock.elapsedRealtime() - gameElapsedTime(getcGameTime()));

希望有一天这会对某人有所帮助。干杯!

于 2012-10-21T13:27:22.127 回答