Существует два способа:
Статически в манифесте:
xml
— Создается при запуске приложения, даже если оно не активно. — Менее гибкий, но надежный для системных событий.
Динамически в коде:
java
— Создается и регистрируется во время выполнения. — Более гибкий, подходит для событий внутри приложения. — Необходимо вручную отменять регистрацию во избежание утечек памяти.