Junior
Ce este un BroadcastReceiver în Android?
sobes.tech AI
Răspuns de la AI
Acesta este un component care răspunde mesajelor broadcast de sistem sau de utilizator. Nu are o interfață de utilizator și este destinat pentru a executa operații în fundal ca răspuns la evenimente specifice.
Caracteristici principale:
- Răspunde la intenții (Intents) cu o acțiune (action) specifică.
- Component de scurtă durată, metoda
onReceive()fiind executată pe o perioadă scurtă. - Nu este destinat pentru operații lungi. Dacă este necesară o muncă de durată, se pornește un Service din
onReceive(). - Poate fi înregistrat static în manifest sau dinamic în cod.
Exemple de utilizare:
- Reacție la schimbări ale stării rețelei (
android.net.conn.CONNECTIVITY_CHANGE). - Reacție la pornirea sistemului (
android.intent.action.BOOT_COMPLETED). - Procesarea SMS-urilor primite.
- Primirea mesajelor personalizate trimise de alte componente ale aplicației sau alte aplicații.
Înregistrare în manifest:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" pentru ca alte aplicații să poată trimite intents
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Înregistrare în cod:
// Într-o Activity sau Service
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// În onDestroy() sau onStop() - este important să dezînregistrăm!
unregisterReceiver(receiver);
Clasa BroadcastReceiver:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Aici se execută codul la primirea Intent-ului
// De exemplu:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "Acțiune personalizată primită!", Toast.LENGTH_SHORT).show();
}
}
}