2012-10-21 63 views
1

我在我的應用程序中有計時器,用於計算遊戲已用時間。 退出時我有保存功能。 我需要從計時器中節省時間,並在我加載遊戲後顯示同一時間。Android天文臺保存加載時間

在保存功能中,我保存了chronometer.getBase()值。 在加載函數中,我在計時器上獲得了該值和setBase()。 但這不是正確的時間,看起來應用程序關閉時,精密計時器一直在滴答滴答。

如何做到這一點? 似乎getBase對於我的目的不合適。

回答

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())); 

希望這會幫助別人一天。乾杯!