Junior
Wat is een BroadcastReceiver in Android?
sobes.tech AI
Antwoord van AI
Dit is een component dat reageert op systeem- of gebruikers-broadcasts. Het heeft geen gebruikersinterface en is bedoeld om achtergrondtaken uit te voeren als reactie op bepaalde gebeurtenissen.
Belangrijkste kenmerken:
- Reageert op Intenties (Intents) met een specifieke actie.
- Kortdurend component, de
onReceive()-methode wordt voor een korte periode uitgevoerd. - Niet bedoeld voor langdurige operaties. Als langdurig werk nodig is, moet een Service worden gestart vanuit
onReceive(). - Kan statisch worden geregistreerd in de manifest of dynamisch in de code.
Voorbeelden van gebruik:
- Reageren op netwerkstatuswijzigingen (
android.net.conn.CONNECTIVITY_CHANGE). - Reageren op systeemstart (
android.intent.action.BOOT_COMPLETED). - Verwerken van inkomende SMS-berichten.
- Ontvangen van aangepaste berichten verzonden door andere componenten of andere apps.
Registratie in de manifest:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" zodat andere apps intents kunnen sturen
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Registratie in de code:
// In een Activity of Service
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// In onDestroy() of onStop() - registratie moet worden geannuleerd!
unregisterReceiver(receiver);
Klasse BroadcastReceiver:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Hier wordt code uitgevoerd bij ontvangst van Intent
// Bijvoorbeeld:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "Aangepaste actie ontvangen!", Toast.LENGTH_SHORT).show();
}
}
}