2013-08-04 3 views
3

나는 카운트 다운 타이머가 필요한 게임을하고있다.안드로이드 게임 카운트 다운 타이머

타이머를 일시 중지하고 카운트 다운을 재개하고 현재 카운트 다운 상태로 약간의 시간을 추가 할 수 있어야합니다.

나는 CountdownTimer 클래스와 메소드를 살펴 보았지만 필수 기능이없는 것으로 보입니다.

조언이 필요합니다. 어떤 구성 요소가이 경우 가장 좋습니까?

사용 방법은 무엇인가요?

가능한 문제점은 무엇입니까?

Thread? AsyncTask? Timer?

누구나이 경험이 있습니까?

답변

2

나는 스레드를 사용할 수 있다고 생각하지만 쉽게 CountdownTimer 래퍼 클래스 사용하여 기능을 구현하는 :

static class MyCountdownTimer { 

    long mCurrentMilisLeft; 
    long mInterval; 
    CountdownTimerWrapper mCountdownTimer; 

    class CountdownTimerWrapper extends CountDownTimer{ 
     public CountdownTimerWrapper(long millisInFuture,long countDownInterval) { 
      super(millisInFuture, countDownInterval); 
     } 

     @Override 
     public void onFinish() { 

     } 

     @Override 
     public void onTick(long millisUntilFinished) { 
      mCurrentMilisLeft = millisUntilFinished; 
     } 

    } 

    public MyCountdownTimer(long millisInFuture, long countDownInterval) {   
     set(millisInFuture,countDownInterval); 
    } 

    public void pause(){ 
     mCountdownTimer.cancel(); 
    } 

    public void resume(){ 
     mCountdownTimer = new CountdownTimerWrapper(mCurrentMilisLeft, mInterval); 
     mCountdownTimer.start(); 
    } 

    public void start(){ 
     mCountdownTimer.start(); 
    } 

    public void set(long millisInFuture, long countDownInterval){ 
     mInterval = countDownInterval; 
     mCurrentMilisLeft = millisInFuture;   
     mCountdownTimer = new CountdownTimerWrapper(millisInFuture, countDownInterval); 
    } 

}