Binding is more efficient, I would recommend it.
The broadcast is more loosely coupled and therefore it may be easier to copy the code: you just transfer the intention to the Activity and no longer require more attention, and in the Service you do not need to do any work with connections, just register the receiver in onCreate() and unregister it onDestroy() . You actually do not need to track anything about the Service.
source share