Is there a publish/subscribe pattern in android?
What I want to achieve is I have this class that can notify interested party of an event. Then the interested party can do whatever it needs.
Coming from a .net microsoft world, this sort of thing are build in.
Do android have something similar, or I have to write some thing like an observer pattern?
Take a look at BroadcastReceiver
. I think it's what you're looking for.
I found LocalBroadcastManager the most suitable for in app pub-sub style. You can always use observers but this one makes life more easy:
https://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html
EDIT: It seems like there are couple of solutions nowdays. They surely worth mentioning:
EventBus as mentioned previously
Otto
RxBus
I think you are speaking in terms of passing events/messages among classes within your application. So this question probably goes down to Java implementation of such a pattern.
There's nothing actually already baked in (i.e. no event
system class), one of the most common way to let a class spread an event/message is the Listener technique (see wikipedia, Vogel, IBM).
There are frameworks too, as from this SO answer.
If you are concerned about async messages across thread/processes in Android, then there are Handlers, AsyncTasks and (for inter-process) Parcelables.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With