2011-11-23 2 views
1

친구들을 만들고 게임을 만들려고 노력하는 사람은 플레이어를 채점하는 방법으로 타이머를 사용하려고하므로 게임 시작시 0부터 시작하여 화면 타이머를 끝내면 끝내기를 원합니다. 게임.Android 애플리케이션의 화면 타이머에서?

나는 Android dev 웹 사이트에서 Handler와 Runnable 객체를 사용하여 원하는대로 작동하게 만들었지 만 지금 당장 Runnable 객체 내부에 run() 메서드가 있습니다. 완전히 끝났으므로 아무것도 수행되지 않습니다.

mHandler = new Handler(); 
    mStartTime = System.currentTimeMillis(); 
    mHandler.removeCallbacks(mUpdateTimeTask); 
    mHandler.postDelayed(mUpdateTimeTask, 100); 

    mUpdateTimeTask = new Runnable() 
    { 
     public void run() 
     { 
      final long start = mStartTime; 
      long millis = SystemClock.uptimeMillis() - start; 
      int seconds = (int) (millis/1000); 
      seconds = seconds % 60; 

      mHandler.postAtTime(this, 
        (start + seconds + 1) * 1000); 

      elapsed.setText(seconds); 
     } 
    }; 

지금 첫째, 사람이 run() 방법이 완전히 생략하는 이유 말해 줄 수 : 바로 지금, 나는 우리의 활동의에서 onCreate 메소드 내에서 다음이? 또한 우리가하려는 일을 위해서도 효과가 있습니까? 또는 우리는 Runnable 객체를 다른 곳에서 가져야합니까? 다른 접근법을 사용합니까? 타이머로 작업 한 것은 이번이 처음 이었기 때문에 어떤 도움을 주셔서 감사합니다!

+0

이 모든 코드인가요mUpdateTimeTask = new Runnable() 할당 후 mHandler.postDelayed(mUpdateTimeTask, 100)를 호출 할 필요가? 실제로 여기서 run 메소드를 호출하지 않습니다. mUpdateTimeTask.start()를 호출해야합니다. – ethan

+0

아니요, postDelayed()는 start()가 필요하지 않습니다. –

답변

3

은 아마 당신은

+0

이것은 정답입니다. 타이머에 mUpdateTimeTask를 추가 할 때 변수는 null입니다. 단어 뒤에 만 Runnable 객체 주소가 할당됩니다. 그래서 본질적으로 그는 타이머에 널 (null) 매개 변수를 제공합니다. – Wizetux

+0

좋아, 이제 유일한 문제는 (내가 이전에 다른 방법을 시도해 보았습니다) TextView를 설정하려고 시도하는 줄에서 ResourcesNotFoundException이 발생한다는 것입니다. – Kyle

관련 문제