Junior
Šta je BroadcastReceiver u Androidu?
sobes.tech АИ
Одговор од АИ
Ovo je komponenta koja reaguje na sistemske ili korisničke broadcast poruke. Nema korisnički interfejs i namenjena je za izvršavanje pozadinskih operacija kao odgovor na određene događaje.
Glavne karakteristike:
- Reaguje na Intent-ove (Intents) sa određenom akcijom (action).
- Komponenta kratkog trajanja, njen metod
onReceive()se izvršava u kratkom periodu. - Nije namenjena za duge operacije. Ako je potrebna dugotrajna radnja, treba pokrenuti Service iz
onReceive(). - Može biti registrovana statički u manifestu ili dinamički u kodu.
Primeri upotrebe:
- Reagovanje na promene stanja mreže (
android.net.conn.CONNECTIVITY_CHANGE). - Reagovanje na pokretanje sistema (
android.intent.action.BOOT_COMPLETED). - Obrada dolaznih SMS poruka.
- Primanje korisničkih poruka koje šalju drugi komponenti aplikacije ili druge aplikacije.
Registracija u manifestu:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" da bi druge aplikacije mogle slati intentove
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Registracija u kodu:
// U Activity ili Service
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// U onDestroy() ili onStop() - važno je odjaviti registraciju!
unregisterReceiver(receiver);
Klasa BroadcastReceiver:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Ovde se izvršava kod pri primanju Intent-a
// Na primer:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "Prijavljena prilagođena akcija!", Toast.LENGTH_SHORT).show();
}
}
}