In my experience, if you send notifications often, select listeners. I implemented several BroadcastReceivers on the same issue, but some messages got lost. I think this is due to the fact that BroadcastReceivers do not put a queue on incoming intentions, but instead throw those who arrive, but still "do the work with the old." Of course, broadcasting intentions can be more relaxing, since you do not need to ... connect the service and every part of listening to your application, but in my case (a few messages per second), the listeners were the right choice.
source share