2016-06-16 4 views
0

제가 수행 할 수 있는지 확실하지 않은 작업을하고 싶습니다. 지금까지 내 질문에 대한 좋은 답변을 찾지 못했습니다.Runnable Variables를 다시 시작하십시오. Android

여기 내 상황입니다 :
- 나는 스스로마다 1 초를 호출 Runnable이있는 Handler으로 Timer을 구현했습니다.
- Runnable's 매개 변수를 다시 시작할 수있는 Timer.restart()과 같은 메소드를 구현해야합니다. 당신이 그것을보고, 더 나은 내가

private Runnable rStartCPRTick = new Runnable() { 
    public int seconds = 0; 
    public int minutes = 0; 
    public int hours = 0; 

    @Override 
    public void run() { 
     if(++seconds%60 == 0) //increases the time by one second 
      if(++minutes%60 == 0) 
       hours++; 
     mActivity.updateCPRTime(formatHHMMSS(hours,minutes,seconds)); 
     mStartCodeHandler.postDelayed(this,1000); // tick again in 1s 
    } 

    public void restartCPRTick(){ 
      seconds = 0; 
      minutes = 0; 
      hours = 0; 
    } 
}; 

, 난 외부 Runnable에서 resetCPRTick()를 호출 할 수 있도록 실행 가능한 싶어 내 달성하기 위해 시도하고 실행 호출 이해할 수 있도록 여기에

내 코드입니다 그것은 시작부터 시작됩니다.

그런 것이 가능합니까?

감사합니다.

답변

0

실행 파일이 클래스입니다. 원하는 방법을 추가 할 수 있습니다. 그냥 주위에 그것에 대한 참조를 유지하고 그것을 수행하는 방법을 호출 (당신이 아마 익명의 클래스가 아닌 내부 클래스로 만들고 싶어 할거야).

+0

예, 볼 수 있듯이 익명의 클래스입니다.하지만 해결책을 알고 있다고 생각합니다. 나는 그 클래스를 구현하는 모든 클래스가 그 메소드를 오버라이드 할 수 있도록 restart()라는 메서드를 가진 Runnable의 자체 서브 클래스를 생성 할 것이다. : D –

+0

그런 다음 익명 정오로 만드십시오. 모든 클래스가 익명이어야하는 이유는 없습니다. –

+0

예,하지만 더 많은 수업을 할 것입니다. 제 방식은 서브 클래 싱에만 1 개만 필요하며, 제 코딩 스타일입니다. 그래서 지금은 좀 좋아집니다. –

관련 문제