It depends on the scenario.
When to use this method for registration
Which method to use to register your BroadcastReceiver depends on what your application is doing with the system event. I think there are two reasons why your application wants to learn about system-wide events:
Examples for the first category are applications that should work immediately after loading the device or start some work when installing the application. Battery Widget Pro or App2SD are good examples for such applications. For this type, you must register BroadcastReceiver in the manifest file.
Examples of the second category are events that signal a change in circumstances that your application can rely on. Say that your application depends on the established Bluetooth connection. You must respond to a state change - but only when your application is active. In this case, there is no need for a statically registered broadcast receiver. Dynamically registered would be more reasonable.
There are also several events for which you are not even allowed to statically register. An example of this is the Intent.ACTION_TIME_TICK event, which is broadcast every minute. This is a wise decision because the static receiver overcharged the battery.
Sunil kumar sahoo
source share