I have little concern about register BroadcastReceiver: Because Android support quite flexible, it allow BroadcastReceiver register by 2 method: In Manifest.xml setting and Via implement source code:
Example:
❶ Via Manifest.xml
<intent-filter>
<action android:name="YourBroadcastMesssage" />
</intent-filter>
❷ Register thought implement of source code:
IntentFilter filter = IntentFilter("BroadcastMessage");
filter.addAction("BroadcastMessage");
context.registerReceiver(BroadcastListener, filter);
enter code here
★I think one of difference is unregister able:
- Implement ❶ mean always handler registed broadcast message.
- Implement ❷ for in case don’t want to handler Broadcast message, can unregister that broadcast message
★Question:
I still don’t known exactly when to use ❶ or ❷ and which is better?
IMO, you must register the BroadcastReceiver from code when you want to execute things in that activity directly once the broadcast has been caught (e.g. finish the activity).
When you want to perform other kind of tasks which don’t require the activity, use the XML setting (e.g. launching a Toast to show some info).