2012-03-16 2 views
0

현재 Android OS 용 게임을 개발 중입니다. 그것에 플레이어는 활동을 수행 할 수 있습니다. 각 활동은 플레이어에게 "에너지"를 소비합니다. 플레이어의 현재 에너지 값은 sqlite 테이블에 저장되고 홈 스크린 (home.class)에 표시됩니다. 플레이어가 활동을 수행하면 에너지 값이 감소합니다. 에너지가 0에 도달하면 카운트 다운 타이머가 에너지 값을 10으로 재설정하길 원합니다.CountdownTimer를 올바르게 구현합니다.

지금까지 구현 한 방법은 다음과 같습니다. 사용자 건강/에너지 등급을 표시하는 주 화면 상단에 나는 CountDownTimer를 표시했습니다.

타이머가 작동합니다. 그러나 버튼을 클릭하고 다른 활동으로 이동 한 다음 홈 화면으로 돌아 가면 타이머가 다시 시작됩니다. 내가 어떤 활동 후 홈 화면에 표시되는 값을 업데이트 할 때문에

Intent i = new Intent(Crime.this, Home.class); startActivity(i);

그것은 새로운 Home.class을 시작 : 나는 홈 화면으로 돌아가려면 다음 코드가 실행되기 때문에 나는이 알고 수행되었습니다.

CountDownTimer를 구현하는 더 좋은 방법은 무엇입니까? 어떤 도움을 주시면 감사하겠습니다 ... thanks :)

+0

새로 고침() 형식의 메서드를 홈 클래스에 추가하고 새 인스턴스를 만드는 대신 호출 할 수 있습니까? – Thomas

+0

이런 뜻인가요? 'public void onBackPressed() { \t \t super.onBackPressed(); \t \t \t \t \t 홈 h = 새로운 홈(); \t \t \t h.refresh();' – gurpsone

답변

0

적어도 (을 누르십시오) 에너지를 재설정하려는 시간을 저장하고 틱 스레드로 나머지 시간을 업데이트하십시오. 이렇게하면 타이머를 사용하여 완료/재시작 할 필요가 없으므로 예를 들어 시간을 다시 계산할 수 있습니다. 현재 시스템 시간