2010-04-12 8 views
4

내 활동 UI를 업데이트하기 위해 Handler 클래스를 확장하는 클래스를 사용하고 있습니다. 측면의 주요 활동에 다음과 같이 코드는안드로이드 처리기 루프 중지

public class RefreshHandler extends Handler { 

    public void handleMessage(Message msg) { 


     Homeform.this.updateUI(); 
    } 
    public void sleep(long delayMillis) { 
     this.removeMessages(0); 
     sendMessageDelayed(obtainMessage(0), delayMillis); 
    } 
}; 

private void updateUI(){ 
    Log.v(""," I am inside Update UUI====================="); 

    refresh(); 
    mRedrawHandler.sleep(5000); 

} 

내가

mRedrawHandler = new RefreshHandler(); 

mRedrawHandler.handleMessage(new Message()); 

을 다음 그러나 여기 내가 하나의 문제에 직면하고있다으로 RefreshHandler의 대상에) (이 방법의 handleMessage를 호출했다가 그것을 내 응용 프로그램을 닫은 후에도 실행 중입니다.

이 응용 프로그램을 닫을 때이 처리기를 중지하려면 제 문제를 해결하십시오.

이 같은

+0

수정 권한을 갖고 싶습니다. – Casebash

+0

@Casebash하지만 편집 권한이 있습니다. :) –

답변

1

뭔가 작동합니다 .. 감사 :

if(!isFinishing()) { 
    sendMessageDelayed(obtainMessage(0), delayMillis); 
} 

즉 경우 문 당신의 sendMessage 첨부 온라인 주위

8

들의 OnDestroy,

mRedrawHandler를 제거 부르는 추가 할 수 있습니다. removeMessages (0);

관련 문제