Начало хорошее. Вам действительно нужно shared instance, но только не static. Давайте создадим один инстанс ShellReceiver'а и будем передавать его в конструктор командам, например?