2012-10-21 3 views
1

내 앱에 크로노 미터가 있는데 게임 경과 시간이 계산됩니다. 종료 할 때 저장 기능이 있습니다. 크로노 미터에서 시간을 절약하고 게임을로드 할 때 같은 시간을 표시해야합니다.Android chronometer save load time

저장 기능에서 나는 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())); 

희망을. 건배!