Main difference between Manifest and Programmatic registering of BroadcastReceiver
<p>I am trying to understand the main differences between registering a BroadcastReceiver in the Manifest and registering it programmatically...</p>

<p>My understanding is basically as follows - would appreciate someone correcting my points if I am missing something. </p>

<p>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) (??)</p>

<p>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</p>

<p>thanks</p>
