1

アプリにクロノメーターがあり、ゲームの経過時間をカウントします。終了時に保存機能があります。クロノメーターから時間を節約し、後でゲームをロードするときに同じ時間を表示する必要があります。

保存機能では、chronometer.getBase() の値を保存します。ロード関数では、クロノメーターでその値と setBase() を取得します。しかし、それは適切な時間ではありません。アプリを閉じている間、クロノメーターがカチカチ音をたて続けているようです。

これを行う方法?getBase は私の目的には適切な値ではないようです。

4

1 に答える 1

0

解決策を見つけました。

save 関数では、次のメソッドを使用して値を保存します。

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 に答える