Junior — Middle
Android'de BroadcastReceiver'ın dinamik ve statik kayıt yöntemleri nasıl farklıdır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Android'de BroadcastReceiver kaydetmenin iki yolu vardır — statik ve dinamik.
Statik, uygulamanın manifestinde (AndroidManifest.xml) kaydedilir. Bu alıcı, uygulama çalışmasa bile sistem tarafından etkinleştirilir. Sistem olaylarını dinlemek için kullanışlıdır, ancak Android 8.0 (Oreo) sürümünden itibaren çoğu olay için statik kayıt sınırlandırılmıştır.
Dinamik ise kodda (genellikle Activity veya Service içinde) registerReceiver() yöntemi kullanılarak programatik olarak kaydedilir. Bu alıcı, yalnızca kaydedildiği nesne hayattayken aktiftir ve açıkça unregisterReceiver() çağrısı gerektirir. Dinamik kayıt daha esnektir ve bileşen çalışırken yayın mesajlarını dinlemeye olanak tanır.
Dinamik kayıt örneği:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// olay işleme
}
};
// onCreate() veya onStart() içinde
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// onDestroy() veya onStop() içinde
unregisterReceiver(receiver);