2011-09-01 5 views
1

내 활동에는 많은 활동이 있고 Application (ApplicationEx 클래스)의 하위 클래스가 있습니다. 내 응용 프로그램은 SIP 메시지를 보내고받습니다. 새 메시지가 수신되면 ApplicationEx 클래스에 수신 된 메시지의 콜백이 있습니다. ApplicationEx 클래스에서 UI (특정 활동)에 알리는 방법은 무엇입니까? 모든 메시지에 대해이 링크별로 인 텐트를 브로드 캐스트하는 것은 효율적이지 않습니다. UI를 업데이트 할 수있는 방법은 무엇입니까? 이 응용 프로그램에 적합한 방법은 무엇입니까?Android에서 UI 업데이트

+1

UI를 어떤 방식으로 업데이트합니까? 다시 그리기를 강요하기 위해서는 활동의 루트'View'에'invalidate()'를 호출하십시오. –

답변

1

UI를 업데이트하기 위해 핸들러를 사용했습니다. UI 업데이트 Handler.Callback의 handleMessage 메서드를 재정의합니다.

0

청취자를 등록 (즉, OnDirtyViewListener 만들기)하고 등록 할 때 Activity을 등록하십시오. 그런 다음 ApplicationView이 더러운 것으로 판단되면 전화를 끄고 AcitvitypostInvalidate()이 최상위 레벨 View이됩니다.

+0

답변을 자세히 설명해 주시겠습니까? –

+0

'Application'에서'onViewDirty (Object ... args)'메소드를 사용하여'OnDirtyViewListener' 인터페이스를 생성하십시오. 'Activity'의'onCreate (Bundle)'메소드는'Activity' 레지스터가'Application'에서'registerOnDirtyViewListener (OnDirtyViewListener)'메소드를 호출하도록합니다. 그러면'Application'이'View'를 새로 고침 할 때 리스너의'onViewDirty()'메소드를 호출 할 것입니다. 이렇게하면'Activity'가 당신이 할 방법을 설정하게됩니다 (주로 더러운'View'를 무효로합니다). – AedonEtLIRA