I understand how to use Intents to communicate with the system/other apps. I understand how to use Intents within the same App. I also understand how to use Otto to communicate within the same App.
What are the Pro/Cons of using Otto vs. Intents to communicate between my Activities/Services?
Pros for using Otto:
You get to design your own event types, versus having to use custom actions or something to distinguish one
Intent
from anotherEverything is within your own process (contrast with
startActivity()
and kin, which always involve IPC, even if the activity you are starting is in your own app), for speed and securityA bit less coding, as you aren't having to instantiate
IntentFilter
orBroadcastReceiver
objectsIt offers the producer pattern (as a quasi-replacement for sticky broadcasts)
Being not part of the OS, it has the potential to be updated more frequently
Cons for using Otto:
It cannot start an activity
It cannot start a service
It cannot bind to a service
It cannot send a broadcast
It cannot be used in a
PendingIntent
or for any true IPCIOW, the true comparison for Otto is with
LocalBroadcastManager
, not with the general use ofIntents
.