2012-11-14 2 views
1

GWT에서 일부 이벤트 처리기를 등록하는 클래스 MyClass이 있습니다. 특정 시간에 완성 처리하고 핸들러가 듣기를 중단하게하려는 객체 (object1)가 있습니다. 그 이후로 다른 MyClass 객체 (object2)를 만들려고하기 때문입니다.GWT : 개체 마무리 및 이벤트 처리기 제거

어떻게하면됩니까? 나는 이미 object1 = null으로 시도했지만 핸드 헬드는 계속 청취합니다 (적어도 잠시 동안).

답변

6

gc가 손상시키지 않았기 때문에 처리기가 여전히 존재할 수 있습니다. 청취자가 계속 존재하지 않는 것이 중요하다면 청취자를 등록 해제해야합니다.

이렇게하는 한 가지 방법은 HandlerRegistration을 등록 취소하는 것입니다. 예를 들어 addClickHandlerHandlerRegistration을 반환하며 등록 취소가 가능합니다. 이 작업을 수행하는 방법과 방법은 GUI 클래스에 따라 다릅니다. 당신은 finalize 메소드에서 등록 해제를 할 수 있지만, gc 때문에 이러한 메소드가 매우 산발적으로 호출된다는 것을 알게 될 것입니다. 물론 이것은 java가 아니라 javaScript이기 때문입니다. 따라서 당신의 gui 요소 onDetach 또는 의 분리 또는 파괴 방법에 그들을 넣어 concider.

+3

'finalize()'메소드는 GWT에서 호출되지 않습니다. 왜냐하면 JavaScript에 존재하지 않기 때문에 에뮬레이트 될 수 없기 때문입니다. –