Junior
Was ist BroadcastReceiver in Android?
sobes.tech KI
Antwort von AI
Dies ist eine Komponente, die auf systemweite oder benutzerspezifische Broadcast-Nachrichten reagiert. Sie hat keine Benutzeroberfläche und ist für die Ausführung von Hintergrundoperationen als Reaktion auf bestimmte Ereignisse vorgesehen.
Hauptmerkmale:
- Reagiert auf Intents mit einer bestimmten Aktion.
- Kurzlebige Komponente, ihre Methode
onReceive()wird für einen kurzen Zeitraum ausgeführt. - Nicht für langwierige Operationen geeignet. Bei länger dauernden Arbeiten sollte ein Service aus
onReceive()gestartet werden. - Kann statisch im Manifest oder dynamisch im Code registriert werden.
Anwendungsbeispiele:
- Reaktion auf Netzwerkstatusänderungen (
android.net.conn.CONNECTIVITY_CHANGE). - Reaktion auf Systemstart (
android.intent.action.BOOT_COMPLETED). - Verarbeitung eingehender SMS.
- Empfang von benutzerdefinierten Nachrichten, die von anderen Komponenten der Anwendung oder anderen Anwendungen gesendet werden.
Registrierung im Manifest:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" damit andere Anwendungen Intents senden können
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Registrierung im Code:
// In einer Activity oder einem Service
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// In onDestroy() oder onStop() - Registrierung muss aufgehoben werden!
unregisterReceiver(receiver);
Klasse BroadcastReceiver:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Hier wird Code ausgeführt, wenn der Intent empfangen wird
// Zum Beispiel:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "Benutzerdefinierte Aktion empfangen!", Toast.LENGTH_SHORT).show();
}
}
}