Patrick Patrick - 1 year ago 79
Android Question

When should removeStickyEvent(...) be called?

I'm using the GreenRobot EventBus lib on Android.

Could someone tell me, what's best practice for calling the removeStickyEvent(...)? Up-Action, back button pressed, ...?

Thank you guys.

Answer Source

To answer your question about the Event object staying in memory: only the last sticky event posted stays in memory for each given type.

Take a look at the source here.

Basically to summarize: Eventbus keeps a map of stickyEvents with the key being class type and the value being the field. So when a new sticky event is posted with EventBus.postSticky(event) the event posted overwrites the old event. So I think you are safe from building up many sticky events.

I was worried about that also. I wish it was explained better in the docs but at least its open source so we can look inside and see whats happening.

I guess to answer your question more completely. When should you remove a sticky event? When you don't want calls to get the sticky event to not return anything. When exactly that is is an application specific requirement. Good luck.