我的应用程序中有计时器,它计算游戏的经过时间。 我在退出时保存了功能。 我需要从计时器中节省时间,并在我加载游戏后同时显示。
在保存功能中,我保存了chronometer.getBase()值。 在加载函数中,我在计时器上获得该值和setBase()。 但这不是正确的时间,似乎计时器在应用程序关闭时仍在滴答作响。
怎么做? 看来getBase不适合我的目的。
答案 0 :(得分: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()));
希望有一天这会对某人有所帮助。干杯!