Broadcast receivers allow apps to register for system-wide events like low battery or new SMS messages. A broadcast receiver subclass handles these events by overriding the onReceive() method. To receive broadcasts, the receiver must be declared in the manifest and permissions may need to be set depending on the event. Common examples of broadcasts are for battery level changes, storage changes, Bluetooth connections, and SMS messages received.