A lightweight, simple pub-sub implementation. In Android, this class could provide much of the same functionality as LocalBroadcastManager, without the need for a Context instance.

Note that while getting the instance is thread-safe, its methods are not.