2015-01-20 3 views
14

greenrobot EventBus 라이브러리를 사용하여 안드로이드 앱의 두 조각 사이에 데이터를 보내고 register(Object b) 메서드와 registerSticky(Object object) 메서드 사이의 차이점을 알고 싶습니다.EventBus, register and registerSticky 메서드

답변

42

EventBus을 사용하면 "고정적"인 이벤트를 게시 할 수 있으며 이후은 향후 액세스를 위해 "이벤트 버스에 집착하는"이벤트를 인식합니다. 당신이 게시 할 경우

정상 전송하는 순간에 등록 된 subscribers이없는event,이 event은 삭제됩니다. (미래에 게시 된 또 다른 끈끈한 event가없는 한)

당신은 순간에 그 수신 할 subscribers가없는 경우에도, 비록 끈적event 게시 할 수 있으며, 삭제되지 않습니다. subscriberregisterSticky으로 등록되면 마지막으로 스티커 event 배달이 실행됩니다.

+0

항상 'register'대신'resgisterSticky'를 사용할 수 있습니까? – karoluch

+1

'registerSticky'는 정규 레지스터처럼 동작하지만 (마지막 'sticky' 이벤트 전달을 트리거합니다.)'sticky event'를 사용하는 심각한 경우가 보이지 않는 한 피해야합니다. –

+1

왜 @blipinsk인가요? 기피? 제발 정교하게 ... 두 레지스터를 섞어서 Sticky/post와 postSticky를 등록 할 수 있습니까? – powder366