2012-07-30 8 views
0

저는 Button의 서브 클래스를 설계 중입니다.이 서브 클래스는 때때로 (특히 특정 Broadcasts이 수신 될 때마다) 업데이트 될 것으로 예상됩니다. Activity의 컨텍스트 내에서 작업 중이라면 onResume에 브로드 캐스트 리시버를 연결하고 에서 분리합니다. 그러나 뷰는 이러한 이벤트를 수신하지 않으며 리스너/수신기를 연결하면 포함 된 활동이 "일시 중지"상태 인 경우 UI를 업데이트 할 수 있는지 여부가 확실하지 않습니다. 필요한 경우 청취자를 붙들어 두지 않는 것이 좋습니다.서브 클래스의 브로드 캐스트 수신

내 질문은 파생 된보기에서 외부 이벤트 (수신기 또는 브로드 캐스트를 통해)를 모니터링하는 가장 좋은 방법입니다.

답변

2

나는 서브 클래스가 TextView 인 곳에서 비슷한 것을하고 있습니다. 모든 데이터가 Activity에서 수신되고 처리 된 다음 TextView으로 전송되도록 구조화했습니다.

데이터를 보내는 데 사용하는 구조는 Observable/Observer pattern과 유사합니다. 내 TextViewupdate() 메소드가 있는데이 메소드를 호출하면 텍스트가 업데이트됩니다. 나는 ListTextViews이고 데이터가 수신 될 때마다 각각 update()을 호출합니다. TextViews을 구별하기 위해 인스턴스화시 할당 된 정적 ID 변수가 있습니다.

나는 귀하의 경우에 유사한 것을 할 수 있다고 생각합니다. 광산은 Socket을 통해 JSON 데이터를 수신하므로 방송용으로 작동해야합니다.

관련 문제