I am trying to understand the main differences between registering a BroadcastReceiver in the Manifest and registering it programmatically...
My understanding is basically as follows - would appreciate someone correcting my points if I am missing something.
Registered in Manifest: - The OS will magically find and instantiate your class if needed, calling the onReceive() method, regardless what the running state of your application was - Your receive will only get called once per broadcast (i.e. You can consider that registering in the manifest is like registering your 'class' for receiving the broadcast - and the broadcast instantiates your class as needed) (??)
Registered Programmatically: - registering in code means that you are registering instances of your class to receive broadcast messages (i.e. if your code is a little sloppy, and you manage to register several times, you will end up with multiple BroadcastReceiver instances all having their onReceive() called for a broadcast - to deregister, you need to deregister the specific BroadcastReceiver instance that you previously registered - if your application gets destroyed by the OS, your onReceive() method will not be called for a broadcast
thanks