Junior
Android'de BroadcastReceiver nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bu, sistem veya kullanıcı tarafından yayınlanan broadcast mesajlarına yanıt veren bir bileşendir. Kullanıcı arayüzü yoktur ve belirli olaylara yanıt olarak arka plan işlemleri yapmak üzere tasarlanmıştır.
Ana özellikler:
- Belirli bir eylem (action) ile Intent'lere yanıt verir.
- Kısa ömürlü bir bileşen olup,
onReceive()yöntemi kısa bir süre içinde çalışır. - Uzun süreli işlemler için tasarlanmamıştır. Uzun süren işler gerekiyorsa,
onReceive()içinden Service başlatılmalıdır. - Manifestoda statik olarak veya kodda dinamik olarak kaydedilebilir.
Kullanım örnekleri:
- Ağ durumu değişikliklerine yanıt verme (
android.net.conn.CONNECTIVITY_CHANGE). - Sistem açılışına yanıt verme (
android.intent.action.BOOT_COMPLETED). - Gelen SMS'leri işleme.
- Diğer uygulama bileşenleri veya diğer uygulamalar tarafından gönderilen özel mesajları alma.
Manifestoda kayıt:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" diğer uygulamaların intent göndermesine izin verir
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Koddaki kayıt:
// Activity veya Service içinde
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// onDestroy() veya onStop() içinde - kaydı iptal etmek önemlidir!
unregisterReceiver(receiver);
BroadcastReceiver sınıfı:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Intent alındığında burada kod çalışır
// Örneğin:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "Özel eylem alındı!", Toast.LENGTH_SHORT).show();
}
}
}