All of us known we register BroadcastReceiver in two types
1)Static Registration
2)Dynamic Registration
B
If you want your App to listen the broadcast even if the App is closed Go for Static Broadcast Reciever.
If you want your App to listen only for certain instance(When App is running) then go for Dynamic BroadCast Receiver.
Any Battery monitoring App needs to listen to all broadcast intents(related to battery) even if App is not running. So here we need Static
Any App that uses OTP, needs to listen to Sms only when App is running. Go for dynamic.